在DB2存储过程中 怎样模糊查询 含% _ 的参数 比如
DECLARE S;
SELECt * FROM TABLE WHERe NAME LIKE '%S%'
S是传入的参数 ,无法预知其中的% 和_ 的个数
DB2 参数通配符
答案:2 悬赏:0 手机版
解决时间 2021-03-17 08:53
- 提问者网友:回忆在搜索
- 2021-03-16 21:53
最佳答案
- 五星知识达人网友:从此江山别
- 2021-03-16 23:18
这个需要使用动态游标来执行
1.定义一个动态游标
declare cursor c1 from s1;
2.用一个varchar存放动态sql语句
declare v_stmt varchar(8000);
3.指定你需要的查询语句
set v_stmt='SELECt * FROM TABLE WHERe NAME LIKE ''%'||S||'%''';
语句可以随意拼接但需要符合语法
其中多个单引号这种形式中的第一个单引号为转义符,需要注意
4.准备sql语句
prepare s1 from v_stmt;
5.打开游标
open c1;
6.游标遍历
。。。
7.关闭游标
close c1;
1.定义一个动态游标
declare cursor c1 from s1;
2.用一个varchar存放动态sql语句
declare v_stmt varchar(8000);
3.指定你需要的查询语句
set v_stmt='SELECt * FROM TABLE WHERe NAME LIKE ''%'||S||'%''';
语句可以随意拼接但需要符合语法
其中多个单引号这种形式中的第一个单引号为转义符,需要注意
4.准备sql语句
prepare s1 from v_stmt;
5.打开游标
open c1;
6.游标遍历
。。。
7.关闭游标
close c1;
全部回答
- 1楼网友:青灯有味
- 2021-03-16 23:50
db2支持like通配的
select * from my tab where no like '%70275120023' 我的值 301370275120023,varchar类型,查询正常
请先用 select * from tablename where right(name,3)='123' 看能否查到,确定一下存值有无问题
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯