如果field为null,则拉出某些字段; 否则,拉其他领域

Ses*_*ame 9 sql sql-server oracle

我有下表:

TestTable  
  ColumnA  
  Column1  
  Column2  
  Column3  
  Column4 
Run Code Online (Sandbox Code Playgroud)

我想编写一个简单的SQL语句来检查ColumnA,并根据它是否为null返回某些列.

像(伪)的东西:

If ColumnA Is Null
  SELECT ColumnA, Column1, Column2 
  FROM TestTable
Else
  SELECT ColumnA, Column3, Column4
  FROM TestTable
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Oli*_*bes 17

使用SQL CASE表达式:

SELECT
    ColumnA,
    CASE WHEN ColumnA IS NULL THEN Column1 ELSE Column3 END AS ColumnB,
    CASE WHEN ColumnA IS NULL THEN Column2 ELSE Column4 END AS ColumnC
FROM
    TestTable
Run Code Online (Sandbox Code Playgroud)

请参阅:
CASE(SQL-Server Transact-SQL)
CASE表达式(Oracle)