私は使っている
SELECT REPLACE(REPLACE(Status,'O','New'),'C','Closed') as STATUS,
Oracle SQL Selectで
問題は、テーブルに 'C' と 'Closed' の両方があることです。
したがって、実際には「C」を「Closed」に置き換え、「Closed」を「Closedlosed」に置き換えています
フィールド全体が一致する場合にのみ置換するにはどうすればよいですか?
考えられる解決策の 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
サンプルデータを提供できますか?