新列的值等于第一个非空列的值

  • 本文关键字:新列 第一个 sql
  • 更新时间 :
  • 英文 :


我有一个SQL表,看起来像这样:

<表类> id B C tbody><<tr>3空空172空51空92

您可以COALESCE列值,例如

declare @demo table (id int, A int null, B int null, C int null);
insert into @demo (id, A,B,C) values
( 3,   NULL, NULL,  1),
( 7,   2,    NULL,  5),
( 1,   NULL, 9,     2);
select id, A,B,C, COALESCE(A,B,C,0) as firstNonNull
from @demo

编辑:正如在评论中指出的那样,OP既需要值,也需要找到该值的列的名称。这是我修改后的例子

select ID, A, B, C, COALESCE(A, B, C) as D,
case COALESCE(A, B, C)
when A THEN 'A'
when B THEN 'B'
when C THEN 'C'
else 'None'
end as Choice
from @demo

相关内容

最新更新