2014-01-10 88 views
0

我需要通过数字赋值字,所以我尝试了下面的code.but它显示错误“不正确的语法靠近关键字的情况下。如何使用大小写sql server 2008

declare @ww int 

set @ww=1 
case @ww 
WHEN '1' THEN print='one' 

ELSE NULL 

我在哪里犯错...?

+0

'CASE'是SQL Server中的*表达式*。它计算一个值。这不是控制流*声明*。你能给出一个更现实的例子,你想要达到什么目的?目前,我只是优化这个眼睛,并重新写你的整段代码为'print ='one''(无论这是什么意思) –

回答

1

请仔细阅读http://technet.microsoft.com/en-us/library/ms181765.aspx

在那里它指出:“情况下,可以在任何陈述或条款,允许一个有效的表达式中使用。例如,你可以在语句,如SELECT,UPDATE,DELETE和SET的使用情况,以及诸如select_list,IN,WHERE,ORDER BY和HAVING等子句。“这里不是这种情况。

在回答您的意见(因为你可以不排队在评论休息)

declare @ww int 

set @ww=1 
if @ww = 1 
SET @result = 'one' 

很抱歉的编辑工作,我的兔子在我的键盘跑。

+0

我需要此代码“if(@fun_level == 1) \t \t @ result ='one'“如何得到它 – Happy

+0

编辑发布 –

+0

+1为最有趣的编辑借口,我见过。 –

1

不能在待机使用单独的案例,而不是像这样使用

declare @ww int 
set @ww=1 
SELECT CASE @ww 
    WHEN '1' THEN 'one' 
ELSE NULL 
end 
+0

谢谢了.... – Happy

0

你的错误是::你没有case语句后写“结束”。