日期:2014-05-17  浏览次数:20526 次

急!在存储过程中调用IF else 语句 提示语法错误。
在存储过程中调用IF else 语句 提示语法错误。代码如下:

提示:消息 102,级别 15,状态 1,过程 K_means_2,第 10 行
'@F' 附近有语法错误。即就是 if 语句处有问题。
------最佳解决方案--------------------
create  PROCEDURE [dbo].[K_means_2]
 as
 begin
 declare @B float,@C float,@D float,@F float;
 
 if @F=@B 
  insert into new_table values(1,2)
 else 
 begin
 if @F=@C
insert into new_table values (3,5)
 else 
 if @F=@D
 insert into new_table values (8,5)
 end
 end
------其他解决方案--------------------
CREATE  PROCEDURE [dbo].[K_means_2]
 AS 
     DECLARE @B FLOAT ,
         @C FLOAT ,
         @D FLOAT ,
         @F FLOAT
     SET @b = 0
     SET @c = 0
     SET @d = 0
     SET @f = 0
     BEGIN
         IF @F = @B 
             INSERT  INTO new_table
             VALUES  ( 1, 2 )
         ELSE 
             IF @F = @C 
                 INSERT  INTO new_table
                 VALUES  ( 3, 5 ) ;
             ELSE 
                 IF @F = @D 
                     INSERT  INTO new_table
                     VALUES  ( 8, 5 ) ;
     END
 go

------其他解决方案--------------------
变量没有赋值
------其他解决方案--------------------
if/else 是判断真假的,没有赋值的变量无法判断。所以报错,另外,下次别搞图片,想帮你测还要自己写代码
------其他解决方案--------------------
begin
if @F=@B
insert into ...
else 
begin
if @F=@C
insert into ...
else
insert into ...
end
end
------其他解决方案--------------------
贴图片 你太有才了...
------其他解决方案--------------------
create  PROCEDURE [dbo].[K_means_2]
as
declare @B float,@C float,@D float,@F float;
begin