【问题标题】:Replace string in SQL Select using exact match使用精确匹配替换 SQL Select 中的字符串
【发布时间】:2013-10-27 13:16:48
【问题描述】:

我正在使用

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

在 Oracle SQL 中选择

问题是我的桌子有两个: 'C' 和 '关闭'

所以它实际上是用“Closed”替换“C”,用“Closedlosed”替换“Closed”

如何仅在整个字段匹配时才替换它?

【问题讨论】:

    标签: sql oracle select replace


    【解决方案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

    你能提供样本数据吗?

    【讨论】:

    • 这就是我所需要的!谢谢+!
    猜你喜欢
    • 1970-01-01
    • 2019-03-11
    • 2021-10-18
    • 1970-01-01
    • 2015-10-26
    相关资源
    最近更新 更多