Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara melakukan IF...THEN dalam SQL SELECT?

CASE pernyataan yang paling dekat dengan IF di SQL dan didukung di semua versi SQL Server.

SELECT CAST(
             CASE
                  WHEN Obsolete = 'N' or InStock = 'Y'
                     THEN 1
                  ELSE 0
             END AS bit) as Saleable, *
FROM Product

Anda hanya perlu menggunakan CAST operator jika Anda ingin hasilnya sebagai nilai Boolean. Jika Anda senang dengan int , ini berhasil:

SELECT CASE
            WHEN Obsolete = 'N' or InStock = 'Y'
               THEN 1
               ELSE 0
       END as Saleable, *
FROM Product

CASE pernyataan dapat disematkan di CASE lainnya pernyataan dan bahkan termasuk dalam agregat.

SQL Server Denali (SQL Server 2012) menambahkan pernyataan IIF yang juga tersedia di akses (ditunjukkan oleh Martin Smith):

SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada fungsi Max di SQL Server yang mengambil dua nilai seperti Math.Max ​​di .NET?

  2. Apa Makna Pembelajaran Mesin bagi Profesional Basis Data

  3. Buat Kolom "Terakhir Dimodifikasi" di SQL Server

  4. Cara Mendapatkan Model Pemulihan Database di SQL Server menggunakan T-SQL

  5. Apa yang mewakili ganda di server sql?