syg*_*syg -1 sql t-sql sql-server
有没有办法选择列A
是否A
存在,否则选择B
列?
对于一张桌子
A | B
-----|-----
foo | bar
NULL | bar
foo | NULL
Run Code Online (Sandbox Code Playgroud)
结果将是
C
----
foo
bar
foo
Run Code Online (Sandbox Code Playgroud)
文档中似乎没有支持此功能的功能。
文档中似乎没有支持此功能的功能。
当然有。
SELECT COALESCE(A,B) AS C
FROM aTable
SELECT ISNULL(A,B) AS C
FROM aTable
SELECT CASE WHEN A IS NOT NULL THEN A ELSE B END AS C
FROM aTable
Run Code Online (Sandbox Code Playgroud)
请注意,在 SQL Server 中,查询优化器将重写COALESCE()
为CASE
与第三个示例等效的表达式。