根据 SQL 中的空列插入错误消息列
Insert Error Message column based on null columns in SQL
我在下面创建了一个 table。
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
当我为 table 执行 select 时,我希望 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'
感谢任何帮助。
谢谢。
我认为使用 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
使用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
我在下面创建了一个 table。
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
当我为 table 执行 select 时,我希望 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'
感谢任何帮助。
谢谢。
我认为使用 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
使用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