Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wykonać IF...THEN w SQL SELECT?

CASE instrukcja jest najbliższa IF w SQL i jest obsługiwana we wszystkich wersjach SQL Server.

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

Wystarczy użyć CAST operator, jeśli chcesz, aby wynik był wartością logiczną. Jeśli jesteś zadowolony z int , to działa:

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

CASE instrukcje mogą być osadzone w innych CASE oświadczenia, a nawet zawarte w agregatach.

SQL Server Denali (SQL Server 2012) dodaje instrukcję IIF, która jest również dostępna w dostępie (wskazane przez Martina Smitha):

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. Jak wyłączyć wszystkie ograniczenia wyboru i kluczy obcych w bazie danych w programie SQL Server (przykłady T-SQL)

  2. Moje zapytanie Wybierz SUMA zwraca wartość null. Powinien zwrócić 0

  3. Łączenie aplikacji działających w systemie Linux z usługami relacyjnej bazy danych Amazon (RDS) dla SQL Server

  4. Najbardziej elegancki sposób generowania permutacji na serwerze SQL

  5. Co to jest unikalne ograniczenie w SQL Server — SQL Server / samouczek TSQL, część 95