在存储过程中调用IF else 语句 提示语法错误。代码如下:提示:消息 102,级别 15,状态 1,过程 K_means_2,第 10 行
'@F' 附近有语法错误。即就是 if 语句处有问题。

解决方案 »

  1.   

    if/else 是判断真假的,没有赋值的变量无法判断。所以报错,另外,下次别搞图片,想帮你测还要自己写代码
      

  2.   

    begin
    if @F=@B
    insert into ...
    else 
    begin
    if @F=@C
    insert into ...
    else
    insert into ...
    end
    end
      

  3.   

    create  PROCEDURE [dbo].[K_means_2]
    as
    declare @B float,@C float,@D float,@F float;
    begin
    if @F=@B 
     insert into new_table values(1,2)
    else if @F=@Cinsert into new_table values (3,5);
    else @F=@D
    insert into new_table values (8,5);
    end
    go
      

  4.   

    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
      

  5.   

    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