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

时间:2018-01-11 23:17:26

标签: sql sql-server tsql

如果存在A列,是否可以选择A,否则请选择B列?

表格

A    | B
-----|-----
foo  | bar
NULL | bar
foo  | NULL

结果将是

C
----
foo
bar
foo

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

1 个答案:

答案 0 :(得分:3)

  

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

当然有。

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

请注意,在SQL Server中,查询优化器会将COALESCE()重写为等同于第三个示例的CASE表达式。