我有一个包含三列的表格:
ColumnA ColumnB ColumnC
AAA NULL 123
BBB 222 NULL
CCC NULL NULL
我想创建一个SELECT语句,它将返回ColumnA,然后是第二列,它将显示ColumnB的值,除非ColumnB为null;否则它将显示ColumnC的值,即使它是NULL。我可以使用IF语句吗?类似的东西:
SELECT ColumnA,
IF(ColumnB IS NULL, ColumnC, ColumnB)
FROM table
**如果我这样做了,下一步就是返回连接列而不是ColumnB的值。实际上IF语句是
IF(table.ColumnB IS NULL, table.ColumnC, table2.ColumnD)
答案 0 :(得分:12)
使用COALESCE
SELECT ColumnA, COALESCE(ColumnB, ColumnC) as 'Value'
答案 1 :(得分:2)
阅读问题的结尾听起来你需要使用CASE
CASE WHEN table.ColumnB IS NULL
THEN table.ColumnC
ELSE table2.ColumnD
END AS Whatever