📜  SQL Server 中的 TRANSLATE()函数(1)

📅  最后修改于: 2023-12-03 14:47:35.932000             🧑  作者: Mango

SQL Server 中的 TRANSLATE()函数

在 SQL Server 中,可以使用 TRANSLATE() 函数将一个字符串的一些字符替换成指定的字符或删除指定的字符。该函数在 SQL Server 2017 及以上版本中提供。

语法

TRANSLATE(string, characters, replacements)

参数解释:

  • string: 要进行字符替换或删除操作的字符串。
  • characters: 要替换或删除的字符。
  • replacements: 指定要替换成的字符。如果是删除字符操作,则此参数应该为空字符串。
示例
1. 将字符串中的一个字符替换成另一个字符

例如,将字符串中的所有空格都替换成下划线。

SELECT TRANSLATE('Hello, world!', ' ', '_');
-- 结果为 `Hello,_world!`
2. 将字符串中多个字符都替换成另一个字符

例如,将字符串中的空格和逗号都替换成下划线。

SELECT TRANSLATE('Hello, world!', ' ,', '__');
-- 结果为 `Hello__world!`
3. 删除字符串中的一个字符

例如,删除字符串中的所有空格。

SELECT TRANSLATE('Hello, world!', ' ', '');
-- 结果为 `Hello,world!`
4. 删除字符串中多个字符

例如,删除字符串中的空格和逗号。

SELECT TRANSLATE('Hello, world!', ' ,', '');
-- 结果为 `Helloworld!`
注意事项
  • charactersreplacements 参数必须是等长的字符串。
  • 如果 string 参数中的字符在 characters 参数中未出现,那么该字符将不受影响,不会被替换或删除。
  • 如果 string 参数中的字符在 characters 参数中出现多次,那么每个字符都将被替换或删除。
  • 如果 characters 参数中的字符有重复的,那么只有第一次出现的字符会被处理,后面重复的字符将被忽略。
  • TRANSLATE() 函数是区分大小写的。如果 string 参数中包含大小写不同的字符,需要分别在 characters 参数和 replacements 参数中指定。