sql存储过程中根据判断拼接sql语句然后执行
答案:5 悬赏:60 手机版
解决时间 2021-03-31 06:49
- 提问者网友:聂風
- 2021-03-30 22:19
sql存储过程中根据判断拼接sql语句然后执行
最佳答案
- 五星知识达人网友:鸠书
- 2021-03-30 23:20
不知道你为什么要这样写,,,
if xxx
sql1
select count() xx from sql1
end
else
sql2
select xxxx from sql2
xxx
为什么不采用这种方式?
如果非要拼接,还要定义@变量,
你后续还是要判断from后面引用哪个,
因为from 后面是没有 a or b的写法的
if xxx
sql1
select count() xx from sql1
end
else
sql2
select xxxx from sql2
xxx
为什么不采用这种方式?
如果非要拼接,还要定义@变量,
你后续还是要判断from后面引用哪个,
因为from 后面是没有 a or b的写法的
全部回答
- 1楼网友:不想翻身的咸鱼
- 2021-03-31 03:41
有图有真相
- 2楼网友:零点过十分
- 2021-03-31 02:01
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;
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;
- 3楼网友:青灯有味
- 2021-03-31 00:39
exec ('select count(*) from ('+SQL语句1或2+')')
- 4楼网友:走死在岁月里
- 2021-03-30 23:31
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语句
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯