SQL选择具有不同的最后10个字符

时间:2017-10-17 17:36:20

标签: sql sql-server sql-server-2008-r2

表phoneRecord具有值:

14445556666
4445556666
7778889999

我想选择不同的最后10个字符,这会给我结果:

14445556666
7778889999

1 个答案:

答案 0 :(得分:0)

你可以这样轻松地做到这一点:

DECLARE @DataSource TABLE
(
    [value] VARCHAR(12)
);

INSERT INTO @DataSource ([value])
VALUES ('14445556666')
      ,('4445556666')
      ,('7778889999')
      ,('17778889992')
      ,('27778889992')
      ,('37778889992');

WITH DataSource AS
(
    SELECT [value]
          ,ROW_NUMBER() OVER(PARTITION BY RIGHT([value], 10) ORDER BY [value]) AS [rowID]
    FROM @DataSource
)
SELECT [value]
FROM DataSource
WHERE [rowID] = 1;

enter image description here

请注意,您必须决定要留下哪个duplicates记录,因为它们不是真正的重复记录。在我的例子中,我使用:

显示最小值
ORDER BY [value]

您可以将其更改为其他内容。