ORACLE SQL中使用case來(lái)分別調(diào)用like和等號(hào)關(guān)聯(lián)的操作
需求定義: 對(duì)于傳入的字符串參數(shù),需要對(duì)該字符串進(jìn)行判斷,如果字符串含有%號(hào),則條件語(yǔ)句中應(yīng)使用ORACLE的like語(yǔ)句,否則的話直接找相等的字符串。SQL語(yǔ)句:
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都是定義的參數(shù),需要根據(jù)傳入的值來(lái)分別進(jìn)行操作。主要是使用了ORACLE的CASE語(yǔ)句。
不知道有哪位高人有更好的方法。
posted on 2009-03-11 12:47 Lucky 閱讀(1066) 評(píng)論(0) 編輯 收藏