2013-10-18 141 views
0

替換SQL選擇字符串我使用使用精確匹配

SELECT REPLACE(REPLACE(Status,'O','New'),'C','Closed') as STATUS, 

中的Oracle SQL選擇

的問題是,我的表有兩種: 'C' 和 '封閉'

所以它實際上用'Closed'取代'C'並用'Closedlosed'取代'Closed'

我該如何取代它只有當整個領域匹配?

回答

1

一個可能的解決方案是使用正則表達式來僅C字符,沒有別的匹配:

WITH 
    my_data AS 
    (SELECT 'Closed' AS status FROM dual 
    UNION ALL SELECT 'C' AS status FROM dual) 
SELECT 
    regexp_replace(status, '^C$', 'Closed') AS rep_status 
FROM 
    my_data 
; 

檢查在SQLFiddle:http://sqlfiddle.com/#!4/d41d8/19247

你能提供的樣本數據?

+0

那就是我需要的!謝謝+! – Kairan