sql >> Databáze >  >> RDS >> Sqlserver

Jak provedu IF...THEN v SQL SELECT?

CASE příkaz je nejblíže IF v SQL a je podporován ve všech verzích SQL Server.

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

Stačí použít CAST operátor, pokud chcete výsledek jako booleovskou hodnotu. Pokud jste spokojeni s int , funguje to:

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

CASE příkazy lze vložit do jiných CASE výpisy a dokonce i zahrnuty v souhrnech.

SQL Server Denali (SQL Server 2012) přidává příkaz IIF, který je také dostupný v přístupu (upozornil Martin Smith):

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


  1. Jak změnit sloupec z NULL na NOT NULL

  2. Pojmenované příkazy MariaDB

  3. Jaká je maximální velikost dotazu pro mysql?

  4. Chyba SQL Server JDBC v jazyce Java 8:Ovladač nemohl vytvořit zabezpečené připojení k serveru SQL pomocí šifrování Secure Sockets Layer (SSL)