0

在一个过程中,我有如下陈述

declare @mnth int
select @mnth=month(cast('08/12/2013' as datetime))

if( @mnth<7)
begin

--some statements

end
else
begin

--some other statements

end

我收到错误

关键字“else”附近的语法不正确。

我不明白出了什么问题。请帮忙

4

5 回答 5

3

你真的在beginandend语句之间输入了一些语句吗?因为我很确定一旦有事情开始,错误消息就会消失。
旁注:这可能应该是评论而不是答案,但我还不能发表评论,我认为它会解决问题(如果在提到的行之间确实没有任何内容,至少)。

于 2013-09-12T10:51:52.547 回答
3

begin/end 里面应该有一些实际的代码,我猜你那里只有注释。

于 2013-09-12T10:51:54.950 回答
2

实际上,您必须将语句放入块中。

if( @mnth<7)
begin
    select 1
end
else
begin
    select 2
end

SQLFiddle 演示

于 2013-09-12T10:50:54.117 回答
0

你需要在BEGINEND块之间有一些语句,即使是注释也是不允许的。

declare @mnth int
    select @mnth=month(cast('08/12/2013' as datetime))

if( @mnth<7)
begin
 DECLARE @Dummy bit 

--some statements



end
else
begin
 DECLARE @Dummy2 bit 
--some other statements

end
于 2013-09-12T11:12:47.383 回答
0

请尝试以下代码

声明 @mnth int select @mnth=month(cast('08/12/2013' as datetime)) BEGIN if( @mnth<7) 开始

打印“如果”

end else begin PRINT 'else' end END

于 2013-09-12T18:40:12.250 回答