【发布时间】:2016-10-17 09:23:56
【问题描述】:
我想根据查询参数使用 LIKE %:myParam% 选择行,前提是它不为空或不为空。 如果查询参数为 null 或为空,我想选择所有记录并删除 Like %%。 我怎样才能做到这一点?我已经尝试过 case-when 但我不确定如何在其中使用 Like。基本上我想根据空检查的结果使用类似的东西。
我有这样的事情:
Select * from myTable tbl
WHERE tbl.myCol LIKE '%' || :myParam|| '%'
例如: Select * from myTable 返回 10 行 - 其中 4 行具有 myCol= null, 如果 :myParam 为空/空,我想选择 10 行,否则我想获得与 LIKE 表达式匹配的行。如果 null 作为 :myParam 传递,我不想得到 6 行
【问题讨论】:
-
tbl.myCol LIKE '%' || nvl(:myParam,tbl.myCol) || '%'
标签: sql oracle select conditional sql-like