我的任务是在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?
答案 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 *