Sql 表中具有空值的第一列

Sql 表中具有空值的第一列,sql,Sql,我想知道如何从表中的每一行的左侧获取第一列的空值,我尝试了SELECT CASE,但它没有按照我想要的方式工作 伙计们,我想非常清楚我想要完成什么。我有一个包含22列的表,其中有行的最后10列具有空值,但我只需要知道左侧第一列的名称以及空值。您可以使用coalesce()从第一个非空列获取值。: 您可以使用case逻辑获取名称: select (case when col1 is not null then 'col1' when col2 is not null th

我想知道如何从表中的每一行的左侧获取第一列的空值,我尝试了
SELECT CASE
,但它没有按照我想要的方式工作

伙计们,我想非常清楚我想要完成什么。我有一个包含22列的表,其中有行的最后10列具有空值,但我只需要知道左侧第一列的名称以及空值。

您可以使用
coalesce()从第一个非空列获取值。

您可以使用
case
逻辑获取名称:

select (case when col1 is not null then 'col1'
             when col2 is not null then 'col2'
             . . .
        end)

只需指定
NULL
作为第一个字段选择

SELECT NULL, FieldA, FieldB, FieldC etc
FROM yourtable

这里唯一的通用方法是案例陈述:

Case
when col1 is null then 'col1'
when col2 is null then 'col2'
when col3 is null then 'col3'
end as frst_null

这样,frst_null将包含包含null值的第一列的名称。您可以按自己喜欢的顺序排序列。

编辑您的问题并提供示例数据和所需结果。您使用的是哪种?“SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加标记,
postgresql
oracle
sql server
db2
,…请提供不适用于您的现有代码示例。以及您正在使用的RDBMS的名称。这不应该是null,而不是null吗?@a_horse_和_no_name我不这么认为,因为您想知道第一列有null。case语句或coalesce中的值不会告诉您哪个列为null。
Case
when col1 is null then 'col1'
when col2 is null then 'col2'
when col3 is null then 'col3'
end as frst_null