【问题标题】:lower function inside replace() in Oracle SQL ProblemOracle SQL 问题中 replace() 内的较低函数
【发布时间】:2022-01-05 15:38:19
【问题描述】:

我正在搜索“hello world”模式并替换为 Hello Bob。

这里我想匹配hello world的所有模式。问题是我们无法在替换函数中匹配这两种模式。所以我把它降低并替换。

作为结果,它使整个字符串为小写。 “这是 Hello Bob 程序!这是 Hello Bob 程序”

但我希望它是“T他是 Hello Bob Program!。T他是 Hello Bob P强>rogram"

这是查询: select replace(lower('This is Hello World Program!. This is hello world Program'),lower('Hello world'),'Hello Bob') from dual;

有什么建议

【问题讨论】:

    标签: sql database oracle replace lowercase


    【解决方案1】:

    您收到全部小写的结果,因为您正在对源字符串执行LOWER 函数。除了使用REPLACE,您可以使用REGEXP_REPLACE,因为该函数可以忽略大小写。

    SELECT REGEXP_REPLACE ('This is  Hello World Program!. This is hello world Program',
                           'Hello world',
                           'Hello Bob',
                           1,
                           0,
                           'i')
      FROM DUAL;
    

    【讨论】:

    • 你能解释一下,为什么 1 和 0 会经过那里
    • @Yash,您为什么不阅读 EJ 发布的文档?它解释了一切
    • @Yash - 这些是 positionoccurrence 参数的默认值,如链接到的文档 EJ 中所示;因为它们是默认值,所以通常可以省略,但由于这些是位置参数,您必须为它们提供值,以便能够为 match_param 参数提供值。
    • 如果您单击我提供的链接,它包含每个参数的文档。 1 是要开始搜索的字符串的位置,0 是要替换的位置。 0 表示所有出现。
    • 道歉我错过了.. 谢谢大家的回复。我明白了。再次感谢您抽出宝贵时间帮助我
    猜你喜欢
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 2018-10-03
    相关资源
    最近更新 更多