SQL查询 - 选择最后7位数相同的数字

时间:2013-11-13 09:41:53

标签: sql-server select substring

我有一个SQL表,里面有13位数的数字。

我想编写一个查询,选择所有数字最后7位数 相同

例如:

其中:

2547041010012
2547042003000
2547041111111
2547042011100
2547040000000

选择以下内容:

2547040000000
2547041111111

如何编写此查询? 我是否使用 SUBSTRING(mo,7,7)

其中SUBSTRING(mo,7,7)= ??

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:6)

WHERE LEN (REPLACE(RIGHT(mo,7), RIGHT(mo,1), '') ) = 0

WHERE RIGHT(mo,7) NOT LIKE '%[^' + RIGHT(mo,1) + ']%'

WHERE mo LIKE '%' + REPLICATE (RIGHT(mo,1), 7)

我更喜欢第三种解决方案。

答案 1 :(得分:0)

你也可以定义你的数字列表,然后加入... ...但是@GriGrim solution更清洁:)) - 我只是添加了这个作为替代,以防这是一次性查询并且可能更快(取决于您的查询执行计划)。

DECLARE @nums TABLE (num BIGINT)
DECLARE @allowednums TABLE (num BIGINT)
INSERT INTO @nums
        ( num ) VALUES ( 2547041010012 )
        INSERT INTO @nums
        ( num ) VALUES ( 2547042003000 )
        INSERT INTO @nums
        ( num ) VALUES ( 2547041111111 )
        INSERT INTO @nums
        ( num ) VALUES ( 2547042011100 )
        INSERT INTO @nums
        ( num ) VALUES ( 2547040000000 )

INSERT INTO @allowednums
        ( num ) VALUES ( 0000000 )
        INSERT INTO @allowednums
        ( num ) VALUES ( 1111111 )
        INSERT INTO @allowednums
        ( num ) VALUES ( 2222222 )
        INSERT INTO @allowednums
        ( num ) VALUES ( 3333333 )
        INSERT INTO @allowednums
        ( num ) VALUES ( 4444444 )
        INSERT INTO @allowednums
        ( num ) VALUES ( 5555555 )
        INSERT INTO @allowednums
        ( num ) VALUES ( 6666666 )
        INSERT INTO @allowednums
        ( num ) VALUES ( 7777777 )
        INSERT INTO @allowednums
        ( num ) VALUES ( 8888888 )
        INSERT INTO @allowednums
        ( num ) VALUES ( 9999999 )

SELECT  [@nums].num
FROM    @nums
        INNER JOIN @allowednums ON CAST(right(CAST([@nums].num AS VARCHAR(20)), 7) AS INT) = [@allowednums].num

答案 2 :(得分:0)

select column_with_number
from table_with_column
where right(column_with_number,7) in (
    '0000000',
    '1111111',
    '2222222',
    '3333333',
    '4444444',
    '5555555',
    '6666666',
    '7777777',
    '8888888',
    '9999999'
)