IT Log

[SQL Server] Functions - 논리 함수 본문

SQL/SQL Server

[SQL Server] Functions - 논리 함수

newly0513 2022. 2. 8. 14:22
728x90
반응형

논리 함수

CHOOSE

CHOOSE ( index, val_1, val_2 [, val_n ] )

 

예시

-- 3번째 항목 반환 예시
SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;

Result  
-------------  
Developer  
  
(1 row(s) affected)

-- 열을 기반으로 하는 예제
USE AdventureWorks2012;  
GO  
SELECT ProductCategoryID, CHOOSE (ProductCategoryID, 'A','B','C','D','E') AS Expression1  
FROM Production.ProductCategory;

ProductCategoryID Expression1  
----------------- -----------  
3                 C  
1                 A  
2                 B  
4                 D  
  
(4 row(s) affected)

GREATEST / LEAST

 

-- 하나 이상의 식 목록에서 최대값을 반환
GREATEST ( expression1 [ ,...expressionN ] )

-- 하나 이상의 식 목록에서 최소값을 반환
LEAST ( expression1 [ ,...expressionN ] )

 

예시

-- 최대값
SELECT GREATEST ( '6.62', 3.1415, N'7' ) AS GreatestVal; 
GO

GreatestVal 
-------- 
  7.0000 

(1 rows affected)

-- 최소값
SELECT LEAST ( '6.62', 3.1415, N'7' ) AS LeastVal; 
GO

LeastVal 
------- 
 3.1415 

(1 rows affected)

IIF

  • NULL이 상수인 경우는 오류이나, 매개변수인 경우 정상 출력
IIF( boolean_expression, true_value, false_value )

 

예시

DECLARE @a INT = 45, @b INT = 40;
SELECT [Result] = IIF( @a > @b, 'TRUE', 'FALSE' );

Result  
--------  
TRUE

-- NULL이 상수
SELECT [Result] = IIF( 45 > 30, NULL, NULL );

-- NULL이 매개변수
DECLARE @P INT = NULL, @S INT = NULL;  
SELECT [Result] = IIF( 45 > 30, @P, @S );

Result  
--------  
NULL

참조 URL : https://docs.microsoft.com/ko-kr/sql/t-sql/functions/logical-functions-choose-transact-sql?view=sql-server-ver15

728x90
반응형

'SQL > SQL Server' 카테고리의 다른 글

[SQL Server] CREATE PROCEDURE  (0) 2022.02.14
[SQL Server] 흐름제어(Control-of-Flow)  (0) 2022.02.08
[SQL Server] Functions - Cursor 함수  (0) 2022.01.25
[SQL Server] CURSOR  (0) 2022.01.25
[SQL Server] Functions - 변환 함수  (0) 2022.01.20
Comments