쿼리 결과가 null이지만 쿼리가 여전히 null을 반환하면 00001
을 표시하려고합니다. 내 질문에 무슨 문제가 있는지 모르겠다.SQL ISNULL이 작동하지 않습니다.
편집 :
OBRNo
가정하면 123-5678-10-13-1619
이다는 LEN(a.OBRNo) is 19
SELECT TOP 1 CASE WHEN RIGHT(a.OBRNo, 5) = NULL THEN '00001' ELSE a.OBRNo
END as CaseWhen,
ISNULL(a.OBRNo, '00001') as ISNULL,
RIGHT(OBRNo, 5) as OrderBy
FROM tbl_T_BMSCurrentControl as a
WHERE LEN(a.OBRNo) = 20 and a.ActionCode = 1
ORDER BY OrderBy DESC
FALSE
로NULL AND a.ActionCode = 1
은 처리 필터링NULL
될 것입니다 :이 시도 (a.OBRNo) = 20' – devio
먼저 'a.OBRNo'가 빈 문자열이 아니겠습니까? – anatol
쿼리가 null을 반환하지 않습니다. 아무 것도 반환하지 않습니다. 'isnull'는 아무 것도없는 행을 만들 수 없습니다. 그리고'len (a.OBRNo) = 20'에 의해 필터링하고 있기 때문에 어떤 null'a.OBRNo' 값도 반환 할 수 없으며, 항상 null 값에 대해 거짓이됩니다. 아직도 확실히 20이되지 않을 것입니다 :)). ANSI SQL에서 nulls가 작동하는 방식을 확인하고 싶을 수도 있습니다. 올바르게 진행하는 것이 중요합니다. – Luaan