如果存在该纪录 并且 time 大于time1, flag = 1
如果存在该纪录 并且 time 小于time1, flag = 2
如果不存在该纪录, flag = 3
...全文
1315打赏收藏
如何根据不同的情况返回,不同的标志值
由下面表 a, 字段:id(主键) ,time 给出固定 id1 = 1, 和time1 = "2004-8-9" 如何取得下面的效果 标志 flag 如果存在该纪录 并且 time 大于time1, flag = 1 如果存在该纪录 并且 time 小于time1, flag = 2 如果不存在该纪录, flag = 3
select flag=case
when exists(select 1 from 表 where id1=@id1 and time>@dt)
then 1
when exists(select 1 from 表 where id1=@id1 and time<@dt)
then 2
else 3 end
你的表中有三个字段,[id],[time],flag
用这个思路:
select [id],[time],flag=
case
when [time]>'2004-08-09' then flag=1
when [time]<'2004-08-09' then flag=2
else
flag=3
end
不知行不,但思路是对的,你参考一下吧.
declare @flag int,@time datetime
select @time=[time] from a where [id]=1 --and datediff(day,[time],'2004-8-9')=0
if @@rowcount=0
set @flag=3
else
begin
if @time>'2004-8-9'
set @flag=1
if @time<'2004-8-9'
set @flag=2
end