注册 登录
编程论坛 SQL Server论坛

关于case语句的用法

九九艳阳天 发布于 2006-12-04 11:23, 678 次点击


我是个新手,下面是书上的例子,可是我调试不出来。不知道哪里出的问题,请高手指教。

pubs是sql server里默认的数据库

use pubs
go
select "作者"=
Case state
when "ca" then "来自加利福尼亚"
when "ks" then "来自堪萨斯州"
when "mi" then "来自马萨诸塞州"
when "in" then "来自印第安纳州"
when "tn" then "来自田纳西州"
else "来自其他州"
end
au_fname+'.'+au_lname FROM authors ORDER BY state
go


报错:

服务器: 消息 170,级别 15,状态 1,行 10
第 10 行: 'au_fname' 附近有语法错误。

3 回复
#2
angeloc2006-12-04 12:29
以下是引用九九艳阳天在2006-12-4 11:23:37的发言:


我是个新手,下面是书上的例子,可是我调试不出来。不知道哪里出的问题,请高手指教。

pubs是sql server里默认的数据库

use pubs
go
select "作者"=X au_fname+'.'+au_lname FROM authors ORDER BY state
go


报错:

服务器: 消息 170,级别 15,状态 1,行 10
第 10 行: 'au_fname' 附近有语法错误。


如果X为你的case语句块,那么整个select语法就不正确了,看题目意图,可能需要在CASE语句块后加“+”(加号)。
你试试看

#3
棉花糖ONE2006-12-04 13:05

select
作者=( Case state
when 'ca' then '来自加利福尼亚'
when 'ks' then '来自堪萨斯州'
when 'mi' then '来自马萨诸塞州'
when 'in' then '来自印第安纳州'
when 'tn' then '来自田纳西州'
else '来自其他州'
end ) ,au_fname+'.'+au_lname
FROM authors ORDER BY state
这样子就可以了,你的字符串不能用双引号,只能用单引号
#4
九九艳阳天2006-12-04 14:15
谢谢
谢谢三楼的朋友,按照你的方法我已经调试出来结果了,关于case语句,我还需要再研究一下。也谢谢二楼朋友的回复。
1