首页 > 解决方案 > 如何查看我的 COALESCE 语句的结果是从哪里检索到的?

问题描述

我有五个需要查看的字段:FirstNameSurnameDateOfBirth和。idPostcode

如果我运行它(使用 SQL Server Management Studio (SSMS)):

SELECT COALESCE(FirstName, Surname, DateOfBirth, id, Postcode)
FROM table1

它返回如下结果:

1.  DAVID
2.  SUSAN
3.  764329
4.  FRANK
5.  STEPHANIE
6.  HARRIS
7.  10/10/1967
8.  E3 5QP
9.  DAVID
10. JOHN

这样做的问题是,确定结果的来源并不总是那么容易。例如,DAVID并且JOHN很容易成为名字或姓氏。

有没有办法查看每个结果的来源?像这样的东西:

1.  DAVID FirstName
2.  SUSAN FirstName
3.  764329 id
4.  FRANK FirstName
5.  STEPHANIE FirstName
6.  HARRIS Surname
7.  10/10/1967 DateOfBirth
8.  E3 5QP Postcode
9.  DAVID Surname
10. JOHN Surname

也许两列结果会很好:一列是结果,另一列是原点。

标签: sqlssmscoalesce

解决方案


你没有指定 RDBMS,但如果你真的想使用,coalesce那么你可以尝试这样的事情:

SELECT COALESCE(CONCAT(FirstName,' First Name'), CONCAT(Surname,' Surname'),...)
FROM table1

使用CONCAT或您的 RDBMS 的特定方式进行连接。CONCAT如果其中一个元素为 null,则应返回 null,因此它的工作方式应该相同。

CASE EXPRESSION您还可以使用评论中建议的@manibharataraju生成新列。


推荐阅读