oracle 的case语句

需求定义: 对于传入的字符串参数,需要对该字符串进行判断,如果字符串含有%号,则条件语句中应使用ORACLE的like语句,否则的话直接找相等的字符串。

SQL语句:
SELECT
    *
FROM
        TABLEA
WHERE  
       COLUMN1 =  'KEYWORD-COLUMN1'     AND
       COLUMN2    IN
            (SELECT
                CASE
                WHEN INSTR('KEYWORD-COLUMN2', '%') > 0
                THEN
                    (SELECT COLUMN2  FROM  TABLEA WHERE COLUMN2  like 'KEYWORD-COLUMN2'
                    )
                ELSE
                    (SELECT COLUMN2 FROM TABLEA WHERE COLUMN2  = 'KEYWORD-COLUMN2'
                    )
                END
                FROM DUAL
            )
以上的KEYWORD-COLUMN1和KEYWORD-COLUMN2都是定义的参数,需要根据传入的值来分别进行操作。主要是使用了ORACLE的CASE语句。
不知道有哪位高人有更好的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值