Sql server 查询以查找不同的电子邮件地址系列

Sql server 查询以查找不同的电子邮件地址系列,sql-server,Sql Server,下面的问题我需要一些帮助- 我想使用SQL查询从数据库表中查找一系列不同的电子邮件地址 我的数据库表包含电子邮件地址- abc1@..com, abc2@..com, . . . . f1@..com, f2@..com, f3@..com . . . xyzpqr1@..com, xyzpqr2@..com . . 这些电子邮件序列模式总是不同的,但它们共享相同的序列模式,如数字1到10,例如pq1@..com,pq2@..com,pq3@..com,...,pq10@..com,,, 其中

下面的问题我需要一些帮助-

我想使用SQL查询从数据库表中查找一系列不同的电子邮件地址

我的数据库表包含电子邮件地址-

abc1@..com,
abc2@..com,
.
.
.
.
f1@..com,
f2@..com,
f3@..com
.
.
.
xyzpqr1@..com,
xyzpqr2@..com
.
.
这些电子邮件序列模式总是不同的,但它们共享相同的序列模式,如数字1到10,例如
pq1@..com,pq2@..com,pq3@..com,...,pq10@..com,,,
其中文本“pq”可以是任意文本。而且数字(在上面的例子中是1到10)也是随机的

我们可以通过复制excel中的数据,然后手动检查每个记录来检测此系列。但这不是可行的解决方案


所以我在想,有人能想出SQL查询,这将有助于检测这样一系列的电子邮件地址。

试试这个。只需替换所有数字字符并应用
RANK
窗口函数<代码>排名列将对您的电子邮件进行分组:

DECLARE @t TABLE ( email NVARCHAR(MAX) )

INSERT  INTO @t
VALUES  ( 'some1@gmail.com' ),
        ( 'some2@gmail.com' ),
        ( 'some3@gmail.com' ),
        ( 'someother1@gmail.com' ),
        ( 'someother2@gmail.com' );

WITH    cte1
          AS ( SELECT   email ,
                        REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(email,
                                                              '1', ''), '2',
                                                              ''), '3', ''),
                                                              '4', ''), '5',
                                                              ''), '6', ''),
                                                        '7', ''), '8', ''),
                                        '9', ''), '0', '') AS newemail
               FROM     @t
             ),
        cte2
          AS ( SELECT   * ,
                        RANK() OVER ( ORDER BY newemail ) AS rank
               FROM     cte1
             )
    SELECT  * FROM    cte2
输出:

email                  newemail             rank
some1@gmail.com        some@gmail.com       1
some2@gmail.com        some@gmail.com       1
some3@gmail.com        some@gmail.com       1
someother1@gmail.com   someother@gmail.com  4
someother2@gmail.com   someother@gmail.com  4

您使用哪种RDBMS?感谢您的回复。我正在使用Microsoft SQL Server 2012…数据太大,无法传递。。希望你们能得到我的问题,找到我在问题中提到的不同系列的电子邮件地址。我的意思是样本数据就在我的问题中。无论如何,在这里ispq1@one.com pq2@one.com pq3@one.com pq4@one.com pq5@one.com pq6@one.com pq7@one.com pq8@one.com pq9@one.com pq10@one.com