需求定義: 對于傳入的字符串參數(shù),需要對該字符串進行判斷,如果字符串含有%號,則條件語句中應使用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都是定義的參數(shù),需要根據(jù)傳入的值來分別進行操作。主要是使用了ORACLE的CASE語句。
不知道有哪位高人有更好的方法。