Reputation: 2437
I have data of the following form
ID Description
------- ------------------------
83633 Reserves - 1
83634 Reserves - 2
83635 Reserves - Total
83636 X Reserves
83637 E Reserves
83638 Oil
83639 NGL
83640 NB Gas
83641 NU Gas
102195 Proved Reserves - D
102196 Proved Reserves - U
102197 Proved Reserves - Total
102198 Probable Reserves - Gross
102199 Proved Reserves - G1
102200 Proved Reserves - G2
102201 Proved Reserves - G3
102202 Proved Reserves - G4
102203 Proved Reserves - N1
102204 Proved Reserves - N2
102205 Proved Reserves - N3
102206 Proved Reserves - N4
102207 Probable Reserves - G1
102208 Probable Reserves - G2
102209 Probable Reserves - G3
102210 Probable Reserves - G4
102211 Oil
102212 NGL
102213 CNG
102214 Natural Gas
I wish to write a query to select Id's that increment by only one. For example if i give the starting ID=83633
then the query should return the following data
ID Description
------- ------------------------
83633 Reserves - 1
83634 Reserves - 2
83635 Reserves - Total
83636 X Reserves
83637 E Reserves
83638 Oil
83639 NGL
83640 NB Gas
83641 NU Gas
On encountering ID = 102195
the query must stop executing. Thanks in advance for the help!!
Upvotes: 2
Views: 138
Reputation: 18629
Please try:
SELECT
ID,
Description
FROM(
SELECT
ID+1-ROW_NUMBER() OVER (ORDER BY ID) Col,
*
FROM YourTable
WHERE ID>=83633
)x WHERE Col=83633
Upvotes: 2
Reputation: 937
You can use 'While' loop as follows:
DECLARE @Temp INT
SELECT @Temp =83633
WHILE(@Temp <=102195)
BEGIN
PRINT CHAR(@Temp )
SELECT @Temp = @Temp + 1
END
GO
Upvotes: 0