我有一个SQL表,看起来像这样:
<表类>
id
B
C
tbody><<tr>3 空 空 1 72 空 5 1空 9 2 表类>
您可以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