IF...ELSE SQL 문을 실행하기 위한 조건을 설정합니다. 부울 식이 TRUE를 반환하는 경우 SQL 문이 실행됩니다.
ELSE 키워드는 선택적이며 IF 조건이 만족되지 않는 경우 실행될 대체 SQL 문을 동반합니다.
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
-- Boolean_expression
TRUE 또는 FALSE를 반환하는 식입니다.
부울 식이 SELECT 문을 포함하는 경우에는 SELECT 문을 괄호로 묶어야 합니다.
-- { sql_statement| statement_block }
문 블록을 사용하지 않으면 IF나 ELSE 조건이 하나의 Transact-SQL 문 실행에만 영향을 줍니다.
문 블록을 정의하려면 흐름 제어 키워드인 BEGIN 및 END를 사용하세요.
A. IF... ELSE 사용
IF DATENAME(weekday, GETDATE()) IN ('토요일', '일요일')
SELECT '주말';
ELSE
SELECT '주중';
B. ELSE IF와 문 블록(BEGIN, END)을 사용
DECLARE @PersonID NVARCHAR(10) = 'jinwoopark',
DECLARE @Nation NVARCHAR(10) = '한국',
DECLARE @PersonName NVARCHAR(10),
DECLARE @CompanyID NVARCHAR(10),
DECLARE @CompanyAddr NVARCHAR(100)
--국가에 따라 다른 DB에서 조회
IF @Nation = '미국'
BEGIN
SELECT @PersonName = [NAME], @CompanyID = COMPANYID FROM US_DB..PERSON WHERE PersonId = @PersonID
SELECT @CompanyAddr = CompanyAddress FROM US_DB..COMPANY WHERE CompanyId = @CompanyID
END
ELSE IF @Nation = '중국'
BEGIN
SELECT @PersonName = [NAME], @CompanyID = COMPANYID FROM CH_DB..PERSON WHERE PersonId = @PersonID
SELECT @CompanyAddr = CompanyAddress FROM CH_DB..COMPANY WHERE CompanyId = @CompanyID
END
ELSE
BEGIN
SELECT @PersonName = [NAME], @CompanyID = COMPANYID FROM KR_DB..PERSON WHERE PersonId = @PersonID
SELECT @CompanyAddr = CompanyAddress FROM KR_DB..COMPANY WHERE CompanyId = @CompanyID
END
C. 부울 식 SELECT 포함한 괄호 사용
DECLARE @maxWeight FLOAT = 100.00,
DECLARE @productKey INTEGER = 424
IF @maxWeight <= (SELECT Weight from Product WHERE ProductKey = @productKey)
SELECT @productKey AS ProductKey, Weight, '이 제품은 배송이 너무 무거워 픽업만 가능합니다.' AS ShippingStatus
FROM Product WHERE ProductKey = @productKey
ELSE
SELECT @productKey AS ProductKey, Weight, '이 제품은 배송 또는 픽업이 가능합니다.' AS ShippingStatus
FROM Product WHERE ProductKey = @productKey
D. 부울 식 OR, AND 사용
E. 부울 식 IS NULL, IS NOT NULL 사용
[MSSQL] CAST 및 CONVERT (0) | 2021.12.13 |
---|---|
[MSSQL] OUTPUT, 데이터 처리 후 결과 값 리턴 (0) | 2021.10.06 |
[MSSQL] 프로시져 수정일 기준 정렬 (0) | 2021.09.27 |
[MSSQL] SP_RENAME, 테이블 또는 열 개체의 이름 변경 (0) | 2021.08.10 |
[MSSQL] STRING_SPLIT, 문자열을 부분 문자열의 행으로 분할 (0) | 2021.07.25 |
댓글 영역