본문 바로가기
SQL 데이터베이스 시리즈👨‍💻

쿼리 문 해석 (ISNULL 함수)

by @ENFJ 2022. 11. 9.

 

ISNULL((SELECT CD_NM_CP FROM [dbo].[TB_CODE_CP] WHERE CD_TP_CP ='ORDER_TP_CP' 
AND CD_V_CP = A.ORDER_TP_CP COLLATE SQL_Latin1_General_CP1_CI_AS), '') 
AS ORDER_TP_NM_CP

ISNULL함수

ISNULL함수는 Microsoft SQL Server의 내장함수이며 칼럼이 NULL값일 경우 다른값으로 대체할 수 있는 기능이 있습니다. 데이터베이스를 사용하다보면 파라미터로 NULL값이 오거나 칼럼안에 NULL값이 들어있는 등 경우에 따라 NULL값을 적절히 처리해줘야하는 경우가 많은데 이럴때 유용하게 쓰일 수 있는 함수입니다.


여기서 크게 보면 SELECT 한 CD_NM_CP 값이 NULL 값이 온다면 공백으로 출력이 됩니다.

 

AND 는 모두 참이여야만 참 입니다. 하나라도 거짓이면 거짓이 출력되는거죠.

 

그렇기 때문에 위 쿼리문을 다시 해석해보면

[DBO].[TB_CODE_CP] 테이블에서 CD_NM_CP 값을 조회할거다!. (==발주 or 입고)

그런데 조건이 있어! 그게 뭐냐면 WHERE 절 뒤에 나와있습니다.

 

CD_TP_CP 컬럼의 값이 'ORDER_TP_CP' 이여야 하고 AND CD_V_CP 컬럼 과 dbo.TB_PURCHASE_ORDER_CP테이블[위 쿼리문에서는 alias로 A로 지정해두었음] 에서 ORDER_TP_CP 컬럼과 같아야 돼!

(아래 사진 두개의 테이블을 보면 이 모든 조건이 참 임을 확인 할 수 있습니다.)

 

만약 위에 모든 조건이 참이라면 우린 ORDER_TP_NM_CP 라고 부를거야

 

 

 

 

 

마지막 부분에 collate 라는게 있는데 뭔가 정렬해주는 거 같았다. 아래 주소 참고 바람.

https://learn.microsoft.com/ko-kr/sql/t-sql/statements/collations?view=sql-server-ver16 

 

COLLATE(Transact-SQL) - SQL Server

COLLATE(Transact-SQL)

learn.microsoft.com