sql存储过程中根据判断拼接sql语句然后执行

2024-11-13 14:52:09
推荐回答(5个)
回答1:

有图有真相

回答2:

不知道你为什么要这样写,,,
if xxx
sql1
select count() xx from sql1
end
else
sql2
select xxxx from sql2
xxx
为什么不采用这种方式?
如果非要拼接,还要定义@变量,
你后续还是要判断from后面引用哪个,
因为from 后面是没有 a or b的写法的

回答3:

/* 
我给你举一个构造sql语句的例子,首先把sql语句计算出来,然后再执行这个计算出来的sql语句 
*/ 
declare @lssql nvarchar(1024),@a varchar(10),@b varchar(10),@c varchar(32) 
set @a='select'  
set @b='*' 
set @c= 'from person' 
set @lssql=''+@a+' '+@b+' '+@c+''    --得出sql语句  
execute sp_sqlexec @lssql --执行构造好的sql语句

回答4:

Begin
Select count(*) into 变量1 from 表A where列名=param1;

If (判断条件) then
Select 列名 into 变量2 from 表A where列名=param1;
Dbms_output。Put_line(‘打印信息’);
Elsif (判断条件) then
Dbms_output。Put_line(‘打印信息’);
Else
Raise 异常名(NO_DATA_FOUND);
End if;
Exception
When others then
Rollback;
End;

回答5:

exec ('select count(*) from ('+SQL语句1或2+')')