数据证明用if exists..或者if exists ..else if exists..都行不通。 第一种:如果有if(id=1),就执行语句sql1,否则就执行sql2,整个判断只执行一次。 第二种:两个if同级,如果id里面存在0和1(不管0和1有多少个),就分别执行sql1和sql2各一次; 如果只有0或者1就跟第一种没区别。这不符合楼主需要的逐条执行判断,即出现多少次1就执行多少次sql1,出现多少次0就执行多少次sql2 通过SQL语句来处理这个过程有点复杂。。建议通过程序来处理。
列x 1 1 0 1 if exists (select 1 from a where x = 1) beign print '1' end else if exists (select 1 from a where x = 0) begin print '0' end我们这样来操作吧 把查询语句用print来替换 这样只返回1 不会返回0 同理 else后面的查询语句系统不会执行我需要1对应sql1查询语句 2对应sql2查询语句
beignend
else if exists (select 1 from a where x = 0)
beginend
else if exists (select 1 from a where x = 0)这句系统不会再继续执行了
显示结果还是只执行了第一个if exists再想想呢?
按照上面几位的理解,出现1就执行sql1,出现0就执行sql2,如果1,0都出现就分别执行一次sql1和sql2吗?
if exists (select 1 from a where x = 1)
beignend
if exists (select 1 from a where x = 0)
beginend
这办法好
遇上值1就执行sql1查询 遇上0就执行sql2查询
1和0都出现 就执行各自的sql查询
when 0 then select...
end需要达到这种效果
第一种:如果有if(id=1),就执行语句sql1,否则就执行sql2,整个判断只执行一次。
第二种:两个if同级,如果id里面存在0和1(不管0和1有多少个),就分别执行sql1和sql2各一次;
如果只有0或者1就跟第一种没区别。这不符合楼主需要的逐条执行判断,即出现多少次1就执行多少次sql1,出现多少次0就执行多少次sql2
通过SQL语句来处理这个过程有点复杂。。建议通过程序来处理。
1
1
0
1 if exists (select 1 from a where x = 1)
beign
print '1'
end
else if exists (select 1 from a where x = 0)
begin
print '0'
end我们这样来操作吧 把查询语句用print来替换
这样只返回1 不会返回0
同理 else后面的查询语句系统不会执行我需要1对应sql1查询语句
2对应sql2查询语句