我在下面创建了一个表格。
CREATE TABLE TEST_NULL
(
ID INT,
NAME VARCHAR(10),
PLACE VARCHAR(10),
ADDRESS VARCHAR(10),
ERRORMESSAGE VARCHAR(100)
)
INSERT INTO TEST_NULL
VALUES
(1, 'ABC', 'BLR', 'WHT', NULL),
(2, 'DEF', 'BLR', NULL, NULL),
(3, 'GHI', NULL, NULL, NULL),
(4, 'JKL', NULL, 'WHT', NULL)
SELECT * FROM TEST_NULL
当我对表格进行选择时,我希望ERRORMESSAGE列的预期结果如下所示。
我需要获得第一条记录:
1, 'ABC', 'BLR', 'WHT', NULL
我需要获得第二条记录:
2, 'DEF', 'BLR', NULL, 'Address is NULL'
我需要获得第3条记录:
3, 'GHI', NULL, NULL, 'Place, Address is NULL'
我需要获得第4条记录:
4, 'JKL', NULL, 'WHT', 'Place is NULL'
感谢任何帮助。
感谢。
答案 0 :(得分:2)
我认为使用CASE
表达式生成错误消息是最简洁的方法:
SELECT ID, NAME, PLACE, ADDRESS,
CASE WHEN PLACE IS NULL AND ADDRESS IS NULL THEN 'Place, Address is NULL'
WHEN PLACE IS NULL THEN 'Place is NULL'
WHEN ADDRESS IS NULL THEN 'Address is NULL'
ELSE NULL END
FROM TEST_NULL
答案 1 :(得分:0)
使用Case
子句: -
SELECT ID,NAME,PLACE,ADDRESS, case
when
PLACE is not null and ADDRESS is not null
then null
when
PLACE is null and ADDRESS is not null
then 'PLACE is NULL'
when
PLACE is not null and ADDRESS is null
then 'ADDRESS is NULL'
when
PLACE is null and ADDRESS is null
then 'PLACE, Address is NULL'
end as ERRORMESSAGE
FROM TEST_NULL
<强>结果: - 强>
ID NAME PLACE ADDRESS ERRORMESSAGE
1 ABC BLR WHT NULL
2 DEF BLR NULL ADDRESS is NULL
3 GHI NULL NULL PLACE, Address is NULL
4 JKL NULL WHT PLACE is NULL