首页 > 解决方案 > 使用 TRANSLATE 函数从文本中删除字符(用空字符串替换它们)

问题描述

假设我有一个字符串:

DECLARE @text VARCHAR(20) = 'abr_akad-ab#ra';

我想_-#从文本中删除所有字符。

通常我会使用用户REPLACE功能,例如:

SELECT REPLACE(REPLACE(REPLACE(@text, '-', ''), '_', ''),'#','')

我可以以TRANSLATE某种方式使用单个语句来做到这一点吗?

标签: sql-serversql-server-2016sql-server-2017

解决方案


您可以尝试以下查询:

DECLARE @text AS VARCHAR(20) = 'abr_akad-ab#ra';
SELECT REPLACE(TRANSLATE(@text, '_-#', '###'), '#', '')

它将返回输出为abrakadabra

db<>fiddle上的工作演示


推荐阅读