我要处理一个sql语句 (处理为空的)比如:
"select * from (select * from table1 where a=23 and b<'') where col2 = and col2>12 and col3 BETWEEN 11 and "
现在有三个地方 "b<''","col2 =","col3 BETWEEN 11 and "由于他们的值为空(这个值我是从数据库中查的,没有就为null)我就是要把这些字句删除了
处理结果应该是:"select * from (select * from table1 where a=23 ) where col2>12 "
现在我的思路是将所有的关键字除where换成")("(where替换为"(")然后找到每个子句调用处理程序判断处理, 现在有一个问题是在处理嵌套的情况时,最里面一层的最右边的子嵌套替换后缺少一个")" 例如:(()()(*) *位置就代表缺少的")"现在怎么找到它并返回它的位置
(子句开头和结尾的位置是我在删除时的依据)我现在的想法是用栈来实现,然后从外往里扫描,但好像不行
希望大家给个能找到那个缺少的")"的方法
当然如果有更好的处理这样sql语句的想法也行,我可以重新实现
"select * from (select * from table1 where a=23 and b<'') where col2 = and col2>12 and col3 BETWEEN 11 and "
现在有三个地方 "b<''","col2 =","col3 BETWEEN 11 and "由于他们的值为空(这个值我是从数据库中查的,没有就为null)我就是要把这些字句删除了
处理结果应该是:"select * from (select * from table1 where a=23 ) where col2>12 "
现在我的思路是将所有的关键字除where换成")("(where替换为"(")然后找到每个子句调用处理程序判断处理, 现在有一个问题是在处理嵌套的情况时,最里面一层的最右边的子嵌套替换后缺少一个")" 例如:(()()(*) *位置就代表缺少的")"现在怎么找到它并返回它的位置
(子句开头和结尾的位置是我在删除时的依据)我现在的想法是用栈来实现,然后从外往里扫描,但好像不行
希望大家给个能找到那个缺少的")"的方法
当然如果有更好的处理这样sql语句的想法也行,我可以重新实现
Where field_Test is null如果要用到过滤特殊字符,例如回车,TAb键等使用escape关键字,建议看看PL/SQL我还是没有弄明白你要干什么
select * from (select * from table1 where a=23 and b<'') where col2 = and col2>12 and col3 BETWEEN 11 and "
现在有三个地方 "b<''","col2 =","col3 BETWEEN 11 and "由于他们的值为空(这个值我是从数据库中查的,没有就为null)我就是要把这些字句删除了
处理结果应该是:"select * from (select * from table1 where a=23 ) where col2>12 "
这个就是处理的例子