T-SQL:如何选择一列或另一列?

时间:2012-02-28 11:23:28

标签: sql sql-server tsql

我需要进行查询并从一列获取日期,如果它不为空,则替换第二列。

例如,我的表是

Date1         Date2        AnotherColumn
01-01-2012    02-01-2012      ABC
NULL          02-01-2012      CDE
03-01-2012    05-01-2012      XZY

如果Date1不为空,我的查询必须返回Date1,否则为Date2

查询结果:

   Date         AnotherColumn
   01-01-2012     ABC
   02-01-2012     CDE
   03-01-2012     XYZ

如何在T-SQL中执行此操作?

2 个答案:

答案 0 :(得分:6)

细节取决于您的RDBMS,但许多引擎提供某种COALESCE功能。

以下是在SQL Server中执行此操作的方法:

select COALESCE(t.Date1, t.Date2) as Date
from MyTable t

当合并功能不可用时,您可以使用条件表达式。以下是SQL Server的语法:

select case
    when t.Date1 is not null then t.Date1
    else t.Date2
end as Date
from MyTable t

答案 1 :(得分:3)

ISNULL(datefield1, datefield2)

我希望它对你有用。