存储过程条件条件判断 有一个表tmp,传入参数为@flag如果@flag=0 则返回表中的所有记录如果@flag=1 则返回表中字段a=1的记录如果@flag=2 则返回表中字段a<>1的记录能不能直接写在where语句中呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 tryselect *from tmpwhere a=case when @flag=0 then a when @flag=1 then 1 endor a!=case when @flag=2 then 0 end beginif(@flag=0)select * from tmpif(@flag=1)select * from tmp where a=1if(@flag<>1)select * from tmp where a<>1end 是只返回字段 a吗??那可以用select *from tmpwhere case when @flag=0 then a when @flag=1 then 1 end or a!=case when @flag=2 then 0 end as a or a!=case when @flag=2 then 0 end 应该是or a!=case when @flag=2 then 1 end 吧 这样做的结果是正确的,但是我不想通过这种方式来实现,应为中间的处理语句很多,这样的话重复的代码就太多了.想通过where给实现 SELECT *FROM TMPWHERE a = CASE @f WHEN 0 THEN a WHEN 1 THEN 1 END OR a != CASE @f WHEN 2 THEN 1 END beginif (@flag=0)select * from tmpif (@flag=1)select * from tmp where a=1if( @flag=2)select * from tmp where a<>1end 还有另外一种方法了:select * from tmpcase when @flag=0 then a when @flag=1 then 1 endor a!=case when @flag=2 then 0 end 列值字符串相加的语句的另外一种情况 加个where条件后.再去left join.. 查询统计问题查询统计问题查询统计问题查询统计问题 求解SQL语句中where的条件写法 update语句的一个小问题! 问一个简单的问题 急,oracle转sql server 在线等::数据组合显示问题 怎样删除表中的重复记录!写出sql语句,详细请进入!高分! 帮我写一个存储过程一次性清空一个数据库!谢谢! 如何用select 语句查询后,输出指定类型数据 字段连接起来的查询,不会啊
select *
from tmp
where a=case when @flag=0 then a when @flag=1 then 1 end
or a!=case when @flag=2 then 0 end
if(@flag=0)
select * from tmp
if(@flag=1)
select * from tmp where a=1
if(@flag<>1)
select * from tmp where a<>1
end
那可以用select
*
from
tmp
where
case when @flag=0 then a
when @flag=1 then 1 end
or
a!=case when @flag=2 then 0 end as a
or a!=case when @flag=2 then 0 end 应该是
or a!=case when @flag=2 then 1 end 吧
FROM TMP
WHERE a = CASE @f WHEN 0 THEN a WHEN 1 THEN 1 END
OR a != CASE @f WHEN 2 THEN 1 END
if (@flag=0)
select * from tmp
if (@flag=1)
select * from tmp where a=1
if( @flag=2)
select * from tmp where a<>1
end
select * from
tmp
case when @flag=0 then a
when @flag=1 then 1 end
or a!=case when @flag=2 then 0 end