从表中选择(a 或 b)作为 c;

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)

文档中似乎没有支持此功能的功能。

Bac*_*its 5

文档中似乎没有支持此功能的功能。

当然有。

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与第三个示例等效的表达式。