现有需求 表一 table1 列 a,b,c
配置表 table2 列 zdm(表一的字段名) ,pdgz(判断规则 >,<,<=,=> 四种),pdz(判断值,和table1 中的表作对比得值)
想写一个存储过程 通过配置表 判断表1 是否符合数据
例如 table2得值为 zdm(a),pdgz(>),pdz(10) 就是寻找表一中a列大于10的值
但是写存储过程时全是变量 怎表示
最简单的方式是用动态sql,把sql的字符串拼出来,再用execute immediate去执行这个SQL字符串。
如果不用动态sql的话,其实就是在where条件中,对判断规则进行解析
where (case
when pdgz ='>' and zdm>pdz then 1
when pdgz ='<' and zdm<pdz then 1
when pdgz ='<=' and zdm<=pdz then 1
when pdgz ='>=' and zdm>=pdz then 1
end )=1