SQL 存储过程中,if--else if--else end 怎么写啊?

时间:2022-01-06 22:50:01

if()
begin
  ...
end

else if()
begin
  ...
end

else
begin
  ...
end


第二个 else 总是描红下划线,提示:
else 附近有语法错误。应为conversation

6 个解决方案

#1




-- if 后直接写条件,不写括号

create proc sp(@d int)
as
begin
if @d > 100 
begin
select 101 result
end 
else if @d = 100
begin
select 100 result
end
else
begin
select 99 result
end
end
go
exec sp 0
go
exec sp 100
go
exec sp 200
go
drop proc sp 
go

result
-----------
99

(1 行受影响)

result
-----------
100

(1 行受影响)

result
-----------
101

(1 行受影响)


#2


谢谢版主。
  正因为没有写 ()出现错误,才改为:加了(),
  但是,也不行的

#3


版主是正确的。

请问:

create proc sp(@d int)
as
begin
    if @d > 100 
    begin
        select 101 result
    end 
    else if @d = 100
    begin
       不发生任何操作——怎么写
    end
    else
    begin
        select 99 result
    end
end

#4


第二步,不发生任何操作
——该怎么写啊?

#5


随便写一条语句出来,比如写个 set,当是占位符。

#6


SQL 存储过程中,if--else if--else end 怎么写啊?SQL 存储过程中,if--else if--else end 怎么写啊?SQL 存储过程中,if--else if--else end 怎么写啊?

#1




-- if 后直接写条件,不写括号

create proc sp(@d int)
as
begin
if @d > 100 
begin
select 101 result
end 
else if @d = 100
begin
select 100 result
end
else
begin
select 99 result
end
end
go
exec sp 0
go
exec sp 100
go
exec sp 200
go
drop proc sp 
go

result
-----------
99

(1 行受影响)

result
-----------
100

(1 行受影响)

result
-----------
101

(1 行受影响)


#2


谢谢版主。
  正因为没有写 ()出现错误,才改为:加了(),
  但是,也不行的

#3


版主是正确的。

请问:

create proc sp(@d int)
as
begin
    if @d > 100 
    begin
        select 101 result
    end 
    else if @d = 100
    begin
       不发生任何操作——怎么写
    end
    else
    begin
        select 99 result
    end
end

#4


第二步,不发生任何操作
——该怎么写啊?

#5


随便写一条语句出来,比如写个 set,当是占位符。

#6


SQL 存储过程中,if--else if--else end 怎么写啊?SQL 存储过程中,if--else if--else end 怎么写啊?SQL 存储过程中,if--else if--else end 怎么写啊?