读书人

求这句case when语句该如何写

发布时间: 2012-03-09 16:54:56 作者: rapoo

求这句case when语句该怎么写?
tableC

Id state flag createtime updatetime1 deletetime updatetime3
1 创建 无 2011-07-07 无 无 无
2 删除 无 无 无 2011-08-07 无
3 更新 1 无 2011-08-13 无 无
4 更新 3 无 无 无 2011-08-08


我想实现这样一个效果


Id state dealtime(处理时间)
1 创建 2011-07-07
2 删除 2011-08-07
3 更新 2011-08-13
4 更新 2011-08-08




请问这样一句case when语句应该怎么写?
或者有比case when语句更方便的方法?

[解决办法]

SQL code
--> 测试数据:#if object_id('tempdb.dbo.#') is not null drop table #create table #(Id int, state varchar(8), flag int, createtime datetime, updatetime1 datetime, deletetime datetime, updatetime3 datetime)insert into #select 1, '创建', null, '2011-07-07', null, null, null union allselect 2, '删除', null, null, null, '2011-08-07', null union allselect 3, '更新', 1, null, '2011-08-13', null, null union allselect 4, '更新', 3, null, null, null, '2011-08-08'select Id, state, dealtme=coalesce(createtime, updatetime1, deletetime, updatetime3)  from #/*Id          state    dealtme----------- -------- -----------------------1           创建       2011-07-07 00:00:00.0002           删除       2011-08-07 00:00:00.0003           更新       2011-08-13 00:00:00.0004           更新       2011-08-08 00:00:00.000*/ 

读书人网 >SQL Server

热点推荐