Oracle 10g開始可以用正規表示式,
可以用來判斷字串中是否有無指定的文字。

--判斷字串中是否有指定的英文字母_WHERE
SELECT 
 *
FROM (
  SELECT 'ABCDEF' TEST FROM DUAL
  UNION ALL
  SELECT 'ABCDEX' TEST FROM DUAL
)
WHERE REGEXP_LIKE(TEST,'[X-Z]')
;


--判斷字串中是否有指定的英文字母_CASE WHEN
SELECT 
 TEST
 ,CASE WHEN REGEXP_LIKE(TEST,'[X-Z]') THEN 'O' ELSE 'X' END TEST_REGEXP
FROM (
  SELECT 'ABCDEF' TEST FROM DUAL
  UNION ALL
  SELECT 'ABCDEX' TEST FROM DUAL
)
;

參考文章:
Using Regular Expressions With Oracle Database
https://docs.oracle.com/cd/B12037_01/appdev.101/b10795/adfns_re.htm

Oracle PL/SQL: 用正則表達式判斷資料有無中文字 
http://tomkuo139.blogspot.tw/2014/02/oracle-plsql.html
> REGEXP_LIKE( AA, '[一-鶿]' )

arrow
arrow
    全站熱搜

    Nathan 發表在 痞客邦 留言(0) 人氣()