我需要通过数字赋值字,所以我尝试了下面的code.but它显示错误“不正确的语法靠近关键字的情况下。如何使用大小写sql server 2008
declare @ww int
set @ww=1
case @ww
WHEN '1' THEN print='one'
ELSE NULL
我在哪里犯错...?
我需要通过数字赋值字,所以我尝试了下面的code.but它显示错误“不正确的语法靠近关键字的情况下。如何使用大小写sql server 2008
declare @ww int
set @ww=1
case @ww
WHEN '1' THEN print='one'
ELSE NULL
我在哪里犯错...?
请仔细阅读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'
很抱歉的编辑工作,我的兔子在我的键盘跑。
不能在待机使用单独的案例,而不是像这样使用
declare @ww int
set @ww=1
SELECT CASE @ww
WHEN '1' THEN 'one'
ELSE NULL
end
谢谢了.... – Happy
你的错误是::你没有case语句后写“结束”。
'CASE'是SQL Server中的*表达式*。它计算一个值。这不是控制流*声明*。你能给出一个更现实的例子,你想要达到什么目的?目前,我只是优化这个眼睛,并重新写你的整段代码为'print ='one''(无论这是什么意思) –