2017-10-17 160 views
-2

表phoneRecord有值:SQL选择具有鲜明的最后10个字符

14445556666 
4445556666 
7778889999 

我想用不同的过去10个字符,这将给我造成选择:

14445556666 
7778889999 
+2

通常你应该发布你试过的东西,因为这不是一个'为我做'的网站 – Randy

回答

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] 

您可以将其更改为其他值。