[英]SQL Query for Select Sequence Numbers
SQL查询选择序列号
在SQL Server中,我想根据序列号选择行。 例如我有如下数据:
ID RowNos
A 1
B 2
X NULL
C 4
D 5
Y NULL
E 7
F 8
G 9
H 11
I 13
查询应返回
ID NextID
A B -- Since RowNos 1,2 is in sequence
C D -- Since RowNos 4,5 is in sequence
E G -- Since RowNos 7,8,9 is in sequence
我不知道要启动此查询。 否则,我也会发布我的试用版。
DECLARE @t TABLE (ID CHAR(1), RowNos INT)
INSERT INTO @t
VALUES
('A', 1), ('B', 2), ('X', NULL),
('C', 4), ('D', 5), ('Y', NULL),
('E', 7), ('F', 8), ('G', 9),
('H', 11), ('I', 13)
SELECT MIN(ID), MAX(ID)
FROM (
SELECT *, rn = ROW_NUMBER() OVER (ORDER BY RowNos)
FROM @t
) t
WHERE RowNos IS NOT NULL
GROUP BY RowNos - rn
HAVING MIN(ID) != MAX(ID)
输出:
---- ----
A B
C D
E G
选择它们的顺序应该类似于:
SELECT * FROM table_name WHERE RowNos IS NOT NULL ORDER BY RowNos ASC;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.