根据 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