sql-server - 从sql server中的给定字符串中获取不同的字符
问题描述
我需要一个 T-SQL 函数来删除给定字符串中的重复字符
例如 Fn_Remove('AVGHAHA') 它将返回 AVGH
解决方案
使用NGrams8K
,您可以将字符串拆分为单个字符“令牌”,将数字应用于该字符集,然后仅使用每个字符的第一个进行重建:
WITH CTE AS(
SELECT V.S,
N.position,
N.token,
ROW_NUMBER() OVER (PARTITION BY N.token ORDER BY N.position) AS RN
FROM (VALUES('AVGHAHA'))V(S)
CROSS APPLY dbo.NGrams8k(V.S,1) N)
SELECT V.S,
(SELECT '' + C.token
FROM CTE C
WHERE C.S = V.S
AND C.RN = 1
ORDER BY C.position
FOR XML PATH('')) AS Replaced
FROM (VALUES('AVGHAHA'))V(S);
推荐阅读
- python - Selenium Headless chrome 运行速度要慢得多
- python - Git:如何保存并返回到特定版本
- swiftui - @State 和 CoreData 的 SwiftUI 预览问题
- python - 从两个 CSV 文件中读取
- java - 必需的列表参数“ids”不存在
- linux - 可以在 Linux 机器上安装 Payara 服务器多个版本
- python-3.x - /users/signup/“password_1”处的 MultiValueDictKeyError
- c - cs50 PSET4的模糊功能,错误在哪里?
- c - 在子线程中终止使用 system() 启动的程序
- c++ - 有根二叉搜索树。保持与其父级的链接