我需要进行查询并从一列获取日期,如果它不为空,则替换第二列。
例如,我的表是
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中执行此操作?
答案 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)
我希望它对你有用。