SohamC
SohamC

Reputation: 2437

SQL query to loop on a given data

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

Answers (2)

TechDo
TechDo

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

BAdmin
BAdmin

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

Related Questions