幸せのちから

平凡的世界
看似平常实崎岖
成如容易却艰辛

ORACLE SQL中使用case来分别调用like和等号关联的操作

需求定义: 对于传入的字符串参数,需要对该字符串进行判断,如果字符串含有%号,则条件语句中应使用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语句。
不知道有哪位高人有更好的方法。

posted on 2009-03-11 12:47 Lucky 阅读(1058) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

随笔分类(125)

文章分类(5)

日本語

搜索

积分与排名

最新随笔

最新评论