프로그래밍 언어/Database

SQL SELECT에서 IF… THEN을 수행하는 원리

Rateye 2021. 6. 12. 18:00
728x90
반응형
질문 : SQL SELECT에서 IF… THEN을 어떻게 수행합니까?

SQL SELECT 문에서 IF...THEN 을 어떻게 수행합니까?

예를 들면 :

SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product 
답변

CASE 문은 SQL의 IF에 가장 가깝고 모든 버전의 SQL Server에서 지원됩니다.

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

결과를 부울 값으로 원하는 경우 CAST 를 수행하면됩니다. int 만족하면 다음과 같이 작동합니다.

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

CASE 문은 다른 CASE 문에 포함될 수 있으며 집계에도 포함될 수 있습니다.

SQL Server Denali (SQL Server 2012)는 액세스 에서도 사용할 수 있는 IIF 문을 추가합니다 ( Martin Smith가 지적함 ).

SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product 
출처 : https://stackoverflow.com/questions/63447/how-do-i-perform-an-if-then-in-an-sql-select
728x90
반응형