Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql server:查找具有重复字符的名称_Sql_Sql Server_Regex - Fatal编程技术网

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
我在这里发现了一个类似的问题,但它们是连续的

我知道两条路:

1.使用帮助表和连接

2.一个很长的“where like”语句


使用正则表达式有什么方法吗?

此代码将帮助您找到单词中的重复字符和字符计数

样本数据 使用递归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