Oracle SQL存在值为null的栏位做查询条件优化

日常的写法是:

 and (nvl(字段, ' ') like '%' || nvl(I_前端输入字段值, ' ') || '%'

如果字段存在null值的行,前端搜索咩有传值过来,此语法将强制过滤掉为null的行。

示例兼容写法:

and (nvl(字段, ' ') like '%' || nvl(I_前端输入字段值, ' ') || '%'
or nvl(字段, '') like '%' || nvl(I_前端输入字段值, '') || '%')

加了一段nvl(字段, ' '),把为null的转成空格,nvl(I_前端输入字段值, ' ') 也转成空格,

用or合并,保证存在null值的行也能显示出来。

 

posted @ 2024-12-02 17:48  滑溜溜的小热浪  阅读(3)  评论(0编辑  收藏  举报