1. trim()

  • 作用: TRIM() 函数用于去除字符串两端的空格。
  • 语法: TRIM([ leading | trailing | both ] [ trim_character FROM ] string)
    - leading : 去除开头的空格。
    - trailing : 去除末尾的空格。
    - both : 去除两端的空格(默认)。
    - trim_character : 可选,指定要去除的字符,默认为空格。
    - string : 要处理的字符串。
  • 示例:
    SELECT TRIM('  hello  ') AS trimmed_string FROM dual;
    -- 输出:'hello'
    

2. rtrim()

  • 作用: RTRIM() 函数用于去除字符串右端的空格。
  • 语法: RTRIM(string [, trim_character])
    - string : 要处理的字符串。
    - trim_character : 可选,指定要去除的字符,默认为空格。
  • 示例:
    SELECT RTRIM('  hello  ') AS trimmed_string FROM dual;
    -- 输出:'  hello'
    

3. ltrim()

  • 作用: LTRIM() 函数用于去除字符串左端的空格。
  • 语法: LTRIM(string [, trim_character])
    - string : 要处理的字符串。
    - trim_character : 可选,指定要去除的字符,默认为空格。
  • 示例:
    SELECT LTRIM('  hello  ') AS trimmed_string FROM dual;
    -- 输出:'hello  '
    

4. REPLACE()

  • 作用: REPLACE() 函数用于替换字符串中的指定子串。
  • 语法: REPLACE(string, search_string, replacement_string)
    - string : 要处理的字符串。
    - search_string : 要被替换的子串。
    - replacement_string : 替换成的新子串。
  • 示例:
    SELECT REPLACE('hello world', 'o', '') AS replaced_string FROM dual;
    -- 输出:'hell wrld'
    

5. REGEXP_REPLACE()

  • 作用: REGEXP_REPLACE() 函数用于使用正则表达式替换字符串中的指定模式。
  • 语法: REGEXP_REPLACE(string, pattern, replacement [, position [, occurrence [, match_parameter ] ] ] )
    - string : 要处理的字符串。
    - pattern : 要查找的模式。
    - replacement : 替换成的新字符串。
    - 其他参数:可选,用于指定替换的位置、出现次数等。
  • 示例:
    SELECT REGEXP_REPLACE('hello 123 world', '[0-9]', '') AS replaced_string FROM dual;
    -- 输出:'hello  world'
    

6. TRANSLATE()

  • 作用: TRANSLATE() 函数用于将字符串中的指定字符替换为另一个字符。
  • 语法: TRANSLATE(string, from_string, to_string)
    - string : 要处理的字符串。
    - from_string : 要被替换的字符。
    - to_string : 替换成的新字符。
  • 示例:
    SELECT TRANSLATE('hello world', 'o', '') AS replaced_string FROM dual;
    -- 输出:'hell wrld'
    

区别

TRANSLATE()REPLACE() 在功能上有一些区别,虽然它们都用于替换字符串中的特定部分,但它们的实现方式不同,这导致了一些差异:

1. 替换方式

- REPLACE() 替换的是字符串中的子串,而 TRANSLATE() 则是根据给定的映射关系替换字符。例如,在上面的示例中, TRANSLATE() 将字符 ’ o ’ 替换为了空字符串,而不是将 ’ o ’ 子串替换为其他内容。

说明: 子串指的是一个字符串中的部分内容,可以是连续的字符序列。例如,在字符串 " hello world " 中," hello " 和 " world " 都是子串。

2. 映射关系

- TRANSLATE() 中,第二个参数和第三个参数是一一对应的,它们指定了需要替换的字符和替换成的字符。而在 REPLACE() 中,第二个参数是需要被替换的子串,第三个参数是替换成的新子串。

3. 性能

- 由于 TRANSLATE() 是基于字符的替换,而不是子串的替换,因此在一些情况下, TRANSLATE() 的性能可能比 REPLACE() 更高。但需要注意的是, TRANSLATE() 只适用于简单的字符替换,如果需要替换的逻辑较为复杂,可能还是需要使用 REPLACE()

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐