0

私は使っている

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

Oracle SQL Selectで

問題は、テーブルに 'C' と 'Closed' の両方があることです。

したがって、実際には「C」を「Closed」に置き換え、「Closed」を「Closedlosed」に置き換えています

フィールド全体が一致する場合にのみ置換するにはどうすればよいですか?

4

1 に答える 1

2

考えられる解決策の 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

サンプルデータを提供できますか?

于 2013-10-18T16:10:06.543 に答える