sql-server - 如何使用 T-SQL 删除未知字符?

标签 sql-server tsql sql-server-2016

我尝试做一个脚本来消除字符串中的汉字以及我要删除的汉字之间的汉字。请看下面的例子。谢谢。

select LTRIM(SUBSTRING('Tower 6A 第6A座', PATINDEX('%[a-zA-Z0-9]%', 'Tower 6A 第6A座'), LEN('Tower 6A 第6A座')))
select LTRIM(REPLACE(SUBSTRING('Tower 6A 第6A座', CHARINDEX(N'樓', 'Tower 6A 第6A座') + 1, LEN('Tower 6A 第6A座')), ' ', ''))

示例字符串:

Tower 6A 第6A座
Tower 3 第3座

错误的结果:

Tower 6A ?6A?
Tower6A?6A?
Tower 3 ?3?
Tower3?3?

好结果,我想达到:

Tower 6A
Tower 6A
Tower 3
Tower 3

最佳答案

试试这个

   SELECT Replace(Replace('Tower 6A 第6A座','[^a-zA-Z0-9]+', ''),'?','')

关于sql-server - 如何使用 T-SQL 删除未知字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45274496/

相关文章:

c# - SQL Server CLR 和 T-SQL 存储过程与调用者是否相同?

sql - SQL Server Management Studio 中的标准模板

sql - 存储过程中的值转换

sql - SQL Server中使用Ternary函数判断NULL |基于位 NOT NULL?

ssms - Always Encrypted with Azure Key Vault SSMS 清除错误

sql-server - 频繁删除后需要重组/重建索引吗?

sql - 在 SQL 中对分层文本进行排序

sql-server - 将计数 SQL 转换为 %

sql-server - 如何查询位于不同数据库中的表?

sql - 如何在 SQL Server 中的表类型上创建过滤索引?