sql-server - 使用 TRANSLATE 函数从文本中删除字符(用空字符串替换它们)
问题描述
假设我有一个字符串:
DECLARE @text VARCHAR(20) = 'abr_akad-ab#ra';
我想_-#
从文本中删除所有字符。
通常我会使用用户REPLACE
功能,例如:
SELECT REPLACE(REPLACE(REPLACE(@text, '-', ''), '_', ''),'#','')
我可以以TRANSLATE
某种方式使用单个语句来做到这一点吗?
解决方案
您可以尝试以下查询:
DECLARE @text AS VARCHAR(20) = 'abr_akad-ab#ra';
SELECT REPLACE(TRANSLATE(@text, '_-#', '###'), '#', '')
它将返回输出为abrakadabra
db<>fiddle上的工作演示
推荐阅读
- ruby-on-rails - 使用 RSpec 获取 API 请求的 FactoryBot 对象属性
- kotlin - 如何在 Corda 中编写可被其他合约扩展的 Base 合约
- c# - 将更改保存到数据库时出现外键约束错误
- mysql - 如何在续集中动态创建的数据库中创建表?
- excel - 发送 HTTP 请求时如何绕过登录
- javascript - 角度垫排序不适用于带有点符号的 matColumnDef
- python - Celery:远程机器的优先级
- android - Android:如何在代码中初始化自定义视图并将其连接到现有的 xml 视图
- javascript - 为什么当我将 JavaScript 函数作为参数传递时,它会自动转换二进制数?
- javascript - 从数组中获取最高角色