sql语句中判断条件的使用
1、首先我们打开SQL Server Management Studio管理工具,点击【新建查询】,新增一个书写sql语句的窗口。
2、在上一步打开的sql语句输入窗口,定义一个整数类型的变量,设置初始值等于10。
3、使用if条件语句,判断上面的临时变量是否等于10,如果等于就输出一行文字。
4、当上面的sql语句写完之后,点击顶部菜单的【执行】,就能运行当前窗口的sql语句了,此时可以看到下方输出了一行文字,刚好与if条件语句内部的内容一致,说明这个if条件判断成立。
5、这个时候就可以使用else语句。例如,判断变量是否等于5,不管是否等于都输出一句话。从运行结果可以看出,最终输出的是else下面的内容。
6、上面的sql语句,内容判断其实很简单,但是,语句看起来有点繁琐。那么,当if、else判断成立后,各自只有一条sql语句执行的时候,就可以省略begin-end。
7、如果条件判断不止两个结果,比如有三个结果,就可以使用[if]-[else if]-[else]的结构,假设还有4个结果,就在中间继续添加else if即可。
if exists(select 0 from table_2)
select * from table_1 where number in(select number from table_2)
else
select * from table_1
使用Exists判断是否有数据速度最快,效率最高,其他的使用Count()方式,都要遍历table_2表,而Exists判断方式只要扫描到一行即会认为表达式为真
给出两种方式供参考
M1:
select * from table_1
union
select * from table_1 where number in(seelct number from table_2)
M2:
declare
v_num number;
v_sql varchar2(1000);
begin
select count(*) into v_num from table_2;
if v_num>0 then
v_sql=select * from table_1 where number in(select number from table_2);
else
v_sql=select * from table_1;
exception
when no_data_found then
......
end;
select @no = count(1) from table_2
if @no = 0
select * from table_1
else
select * from table_1 where number in(select number from table_2).