需要SQL查询来访问表中存在的不同序列号

时间:2013-11-25 07:06:19

标签: mysql sql sql-server

我有一个包含“ID”列的表。 此列中存在1000到9999之间的不同数字ID。 (1000,1001 ......... 5000,5001 ....,8000,8001 ....,9000 .... 9999)。 现在我需要一个“泛型”查询,它会在此列中显示不同的起始ID序列号。 例如,期望的输出

1000,
5000,
8000,
9000

如果将来在ID列中添加了7000系列,那么相同查询的输出应该也包括在列表中的7000

1000,5000,7000,8000,9000

3 个答案:

答案 0 :(得分:4)

如果你的系列以每千个

开头,那么另一种方法就是这样做
SELECT id
  FROM table1
 WHERE id % 1000 = 0

这是 SQLFiddle 演示


现在这里是一种通用的方法,它将id值中的每个“孤岛”(一系列值,其中next = prev + 1)视为一个系列。这样一个系列可以以任何值

开始和停止
SELECT t1.id
  FROM table1 t1 LEFT JOIN table1 t2
    ON t1.id = t2.id + 1
 WHERE t2.id IS NULL

这是 SQLFiddle 演示

答案 1 :(得分:1)

尝试这个和它的2个零..

select * from table where id like '%000' or id like '%00';

答案 2 :(得分:1)

试试这个

SELECT min(id) from tablename group by SUBSTRING(id, 1, 1)