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
'SQL 데이터베이스 시리즈👨💻' 카테고리의 다른 글
dbeaver 설치 매뉴얼 (0) | 2024.02.04 |
---|---|
👋 정리👋 | SQL 데이터베이스 시리즈 003 (0) | 2021.08.12 |
👋데이터 베이스 생성하기!👋 | SQL 데이터베이스 시리즈 002 (0) | 2021.08.10 |
👋데이터 베이스,DBMS 개념 정리👋 | SQL 데이터베이스 시리즈 001 (0) | 2021.08.10 |