我有一张表,我希望找到第一个非空值从3(并且只有3)列为每个ID从Col1开始,然后到Col2然后到Col3
注意:Col3永远不会为空
ID Col1 Col2 Col3 ------------------------------ 1 A B X 2 NULL C X 3 NULL NULL X 4 D NULL X
要获取每个值的正确列,我使用以下SQL选择
SELECT ID,COALESCE(Col1,Col2,Col3) AS Col FROM MyTable
它返回以下并且工作正常
ID Col ------------- 1 A 2 C 3 X 4 D
我想要的是返回的第三列,指出合并成功的列.以下是我想制作的结果集:
ID Col Source ----------------------- 1 A Col1 2 C Col2 3 X Col3 4 D Col1
解决方法
也许这会奏效吗
SELECT ID,Col3) AS Col,CASE COALESCE(Col1,Col3) WHEN Col1 THEN 'Col1' WHEN Col2 THEN 'Col2' WHEN Col3 THEN 'Col3' ELSE 'Unknown' END AS Source FROM MyTable
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。