if else条件SQL出错

时间:2013-09-12 10:47:34

标签: sql sql-server tsql sql-server-2005

在程序中,我有如下的陈述

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'附近的语法不正确。

我无法理解什么是错的。请帮忙

5 个答案:

答案 0 :(得分:3)

您是否真的在beginend陈述之间输入了一些陈述?因为我很确定一旦有东西开始,错误信息就会消失 旁注:这可能应该是一个评论而不是一个答案,但我还不能评论,我认为它将解决问题(如果在提到的行之间确实没有任何内容,至少)。

答案 1 :(得分:3)

在开始/结束时应该有一些实际的代码,我想你只有那里的评论。

答案 2 :(得分:2)

你实际上必须在块中添加一个语句。

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

SQLFiddle demo

答案 3 :(得分: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

答案 4 :(得分:0)

请尝试使用以下代码

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

打印'如果'

端 其他 开始 打印'其他' 结束 END