gpt4 book ai didi

sql - 如何确定 COALESCE 运算符成功选择了哪一列/值?

转载 作者:行者123 更新时间:2023-12-02 10:49:06 25 4
gpt4 key购买 nike

我有一个表,我希望从 Col1 开始,然后到 Col2,然后到 Col3 的每个 ID 的 3 个(且只有 3 个)列中找到第一个非空值

注意:Col3 绝不为 NULL

ID    Col1    Col2    Col3
------------------------------
1 A B X
2 NULL C X
3 NULL NULL X
4 D NULL X

为了获取每个值的正确列,我使用以下 SQL Select

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,
COALESCE(Col1, Col2, Col3) AS Col,
CASE COALESCE(Col1, Col2, Col3)
WHEN Col1 THEN 'Col1'
WHEN Col2 THEN 'Col2'
WHEN Col3 THEN 'Col3'
ELSE 'Unknown'
END AS Source
FROM MyTable

关于sql - 如何确定 COALESCE 运算符成功选择了哪一列/值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/917388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com