基于SQL While循环

时间:2017-02-14 13:30:42

标签: sql sql-server loops while-loop ssms

我的任务是在SQL Management Studio中编辑存储过程。我已经做了所需要的,但副产品是现在记录中填充了不需要的数据。我期待基于变量LINE_CD排除数据,并希望过滤(接收)LINE_CD< = 14 OR LINE_CD = 21的数据。

目前我已经编辑了其他记录以询问LINE_CD< = 14 OR LINE_CD = 21,但是有一个while循环,它使用一个变量“MAXLINECD”,它设置为21.(这曾经是14,代表我们拥有的线,现在又添加了一条新线)我只想要所有LINE_CD< = 14 OR LINE_CD = 21.

循环是:

DECLARE @Index int, @LINE_CD int, @ORDER int
SELECT @LINE_CD = 1, @ORDER = 51
WHILE @LINE_CD <= @MAX_LINE_CD
    BEGIN

我可以写下这样的内容:

DECLARE @Index int, @LINE_CD int, @ORDER int
SELECT @LINE_CD = 1, @ORDER = 51
WHERE @LINE_CD =1, @ORDER = 51 not in 
    (SELECT @LINE_CD, @ORDER WHERE LINE_CD <=14 OR LINE_CD = 21)
WHILE @LINE_CD <= @MAX_LINE_CD
  BEGIN 

给我一​​个LINE_CD:1,2,3,4,5,6,7,8,9,10,11,12,13,14&amp; 21?

1 个答案:

答案 0 :(得分:1)

您不能使用WHILE,因为您没有从表格中选择一个集合。您可以在DECLARE @Index int, @LINE_CD int, @ORDER int SELECT @LINE_CD = 1, @ORDER = 51 WHILE @LINE_CD <= @MAX_LINE_CD BEGIN IF @LINE_CD <=14 OR @LINE_CD = 21 BEGIN 循环中评估条件。

SELECT *