如何查看从何处检索 COALESCE 语句的结果?
How can I see where the results from my COALESCE statement have been retrieved from?
我有五个字段需要查看:FirstName
、Surname
、DateOfBirth
、id
和 Postcode
.
如果我 运行 这个(使用 SQL Server Management Studio (SSMS)):
SELECT COALESCE(FirstName, Surname, DateOfBirth, id, Postcode)
FROM table1
它returns结果是这样的:
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 的特定方式进行连接。如果元素之一为 null,CONCAT
应该 return null,因此它应该工作相同。
您还可以按照@manibharataraju 在评论中的建议,使用CASE EXPRESSION
生成一个新列。
我有五个字段需要查看:FirstName
、Surname
、DateOfBirth
、id
和 Postcode
.
如果我 运行 这个(使用 SQL Server Management Studio (SSMS)):
SELECT COALESCE(FirstName, Surname, DateOfBirth, id, Postcode)
FROM table1
它returns结果是这样的:
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 的特定方式进行连接。如果元素之一为 null,CONCAT
应该 return null,因此它应该工作相同。
您还可以按照@manibharataraju 在评论中的建议,使用CASE EXPRESSION
生成一个新列。