sql server:查找具有重复字符的名称
我想查找其中包含重复字符的名称,例如:sql server:查找具有重复字符的名称,sql,sql-server,regex,Sql,Sql Server,Regex,我想查找其中包含重复字符的名称,例如: 安娜 asdbbiop A适用于1 @mail@ban 我在这里发现了一个类似的问题,但它们是连续的 我知道两条路: 1.使用帮助表和连接 2.一个很长的“where like”语句 使用正则表达式有什么方法吗?此代码将帮助您找到单词中的重复字符和字符计数 样本数据 使用递归Cte,我们得到了预期的结果 ;With cte AS ( SELECT ID, String ,CAST(LEFT(String,1)AS VARCHAR(10)
- 安娜
- asdbbiop
- A适用于1
- @mail@ban
使用正则表达式有什么方法吗?此代码将帮助您找到单词中的重复字符和字符计数 样本数据 使用递归Cte,我们得到了预期的结果
;With cte
AS
(
SELECT ID, String
,CAST(LEFT(String,1)AS VARCHAR(10)) AS Letter
,RIGHT(String,LEN(String)-1) AS Remainder
FROM @Table
WHERE LEN(String)>1
UNION ALL
SELECT ID, String
,CAST(LEFT(Remainder,1)AS VARCHAR(10)) AS Letter
,RIGHT(Remainder,LEN(Remainder)-1) AS Remainder
FROM cte
WHERE LEn(Remainder)>0
)
SELECT ID,
String,
letter,
Ascii(letter) AS CharCode,
Count(letter) AS CountOfLetter
FROM cte
GROUP BY ID,
String,
letter,
Ascii(letter)
HAVING COUNT(letter)>1
结果
ID String letter CharCode CountOfLetter
---------------------------------------------
1 ana a 97 2
2 asdbbiop b 98 2
3 a1for1 1 49 2
4 @mail@ban @ 64 2
4 @mail@ban a 97 2
是的,有办法。它的名字是CLR。你可以编写你的程序集或谷歌搜索一些已经存在的解决方案writtenSQL服务器没有正则表达式的本机支持,因此,除非你将这些函数添加到数据库中,否则无法使用正则表达式实现这一点。我将使用Python连接数据库,选择数据并从中进行字符串比较。
ID String letter CharCode CountOfLetter
---------------------------------------------
1 ana a 97 2
2 asdbbiop b 98 2
3 a1for1 1 49 2
4 @mail@ban @ 64 2
4 @mail@ban a 97 2