tableCId state createtime updatetime deletetime
1 创建 2011-07-07
2 更新 2011-08-07
3 删除 2011-08-08我想实现这样一个效果
Id state dealtime(处理时间)
1 创建 2011-07-07
2 更新 2011-08-07
3 删除 2011-08-08
请问这样一句语句应该怎么写?
1 创建 2011-07-07
2 更新 2011-08-07
3 删除 2011-08-08我想实现这样一个效果
Id state dealtime(处理时间)
1 创建 2011-07-07
2 更新 2011-08-07
3 删除 2011-08-08
请问这样一句语句应该怎么写?
1 创建 2011-07-07 无 无
2 更新 无 2011-08-07 无
3 删除 无 无 2011-08-08我想实现这样一个效果
Id state dealtime(处理时间)
1 创建 2011-07-07
2 更新 2011-08-07
3 删除 2011-08-08
请问这样一句语句应该怎么写?
select id,state , (case when state='创建 ' then createtime when state='更新 ' then updatetime
else deletetime end) dealtime from tableC
--1 创建 2011-07-07 无 无
--2 更新 无 2011-08-07 无
--3 删除 无 无 2011-08-08
if OBJECT_ID('tb') is not null
drop table tb
go
create table tb(Id int,[state] varchar(50),createtime varchar(50), updatetime varchar(50)
, deletetime varchar(50))
insert into tb values(1 ,'创建' , '2011-07-07' , '无' , '无')
insert into tb values(2, '更新' , '无' , '2011-08-07', '无')
insert into tb values(3 ,'删除' , '无' , '无' , '2011-08-08')
--我想实现这样一个效果,
--Id state dealtime(处理时间)
--1 创建 2011-07-07
--2 更新 2011-08-07
--3 删除 2011-08-08
select Id ,[state],case when createtime <>'无' then createtime
else (case when updatetime <>'无' then updatetime else deletetime end) end as 'dealtime(处理时间)'
from tbId state dealtime(处理时间)
----------- -------------------------------------------------- --------------------------------------------------
1 创建 2011-07-07
2 更新 2011-08-07
3 删除 2011-08-08(3 行受影响)
insert into tb values(1 ,'创建' , '2011-07-07' , null , null)
insert into tb values(2, '更新' , null , '2011-08-07', null)
insert into tb values(3 ,'删除' , null , null , '2011-08-08')
go
select id , state , COALESCE(createtime,updatetime,deletetime) dealtime from tbdrop table tb/*
id state dealtime
----------- -------------------------------------------------- --------------------------------------------------
1 创建 2011-07-07
2 更新 2011-08-07
3 删除 2011-08-08(所影响的行数为 3 行)
*/