sql - 如何查看我的 COALESCE 语句的结果是从哪里检索到的?
问题描述
我有五个需要查看的字段:FirstName
、Surname
、DateOfBirth
和。id
Postcode
如果我运行它(使用 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
也许两列结果会很好:一列是结果,另一列是原点。
解决方案
你没有指定 RDBMS,但如果你真的想使用,coalesce
那么你可以尝试这样的事情:
SELECT COALESCE(CONCAT(FirstName,' First Name'), CONCAT(Surname,' Surname'),...)
FROM table1
使用CONCAT
或您的 RDBMS 的特定方式进行连接。CONCAT
如果其中一个元素为 null,则应返回 null,因此它的工作方式应该相同。
CASE EXPRESSION
您还可以使用评论中建议的@manibharataraju生成新列。
推荐阅读
- c++ - vector.size() 一直返回 0
- javascript - “KeyboardEvent.key”值是否跨浏览器一致?
- javascript - 带有使用视频标签的自定义取消静音按钮的 Vimeo 视频
- r - R // datatable // 唯一名称的累积计数
- html - div中的HTML滚动条
- amazon-ec2 - 在 cloudwatch 代理配置中添加自定义变量
- javascript - 使用 typescript 在 vuejs 中为模板使用容器
- qt - Qt:在 QListWidget 内拖放不起作用
- excel - 将表格、书签和页面插入 Word 文档的中间
- sql-server - EF Core:在 FromSql() 的一次调用中获取两个 SELECT 语句