sti*_*ghy 2 sql t-sql sql-server
我需要进行查询并从一列获取一个日期,如果它不是null,则从第二列开始.
例如,我的表是
Date1 Date2 AnotherColumn
01-01-2012 02-01-2012 ABC
NULL 02-01-2012 CDE
03-01-2012 05-01-2012 XZY
Run Code Online (Sandbox Code Playgroud)
Date1如果Date1不为null,则我的查询必须返回,否则返回Date2.
查询结果:
Date AnotherColumn
01-01-2012 ABC
02-01-2012 CDE
03-01-2012 XYZ
Run Code Online (Sandbox Code Playgroud)
怎么能在T-SQL中做到这一点?
细节取决于您的RDBMS,但许多引擎提供某种COALESCE功能.
以下是在SQL Server中执行此操作的方法:
select COALESCE(t.Date1, t.Date2) as Date
from MyTable t
Run Code Online (Sandbox Code Playgroud)
当合并函数不可用时,您可以使用条件表达式.以下是SQL Server的语法:
select case
when t.Date1 is not null then t.Date1
else t.Date2
end as Date
from MyTable t
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3898 次 |
| 最近记录: |