日期:2014-05-20  浏览次数:20699 次

请教一个问题
sql语句中的case when

条件 @a=1 字段1就等于'ZM01'

如果@a=2 字段1就等于‘ZM02’,‘ZM03’,‘ZM04’,‘ZM05’ 


要怎么写呢?

麻烦举个例子 谢谢了

------解决方案--------------------
SELECT 编号,SUM(CASE WHEN 科目='数学' THEN 数学分数 END) AS 数学,
SUM(CASE WHEN 科目='语文' THEN 语文分数 END) AS 语文 FROM 表名 GROUP BY 编号;
不知道这样写,你时候能理解。
------解决方案--------------------
试一下这样写,可以不
CASE @a
WHEN 1 THEN 'ZM01'
WHEN 2 THEN 'ZM02','ZM03','ZM04','ZM05'

------解决方案--------------------
lz是

如果@a=1
就sql拼上 "字段1 = 'ZM01'"

如果@a=2
就在sql拼上" 字段1=‘ZM02’or 字段1=‘ZM03’or 字段1=‘ZM04’or 字段1=‘ZM05’"

这个意思吧?

good luck
------解决方案--------------------
select XXXX
from XXXX
where 
(a = '1'
and field1='ZM01'
)
or
(a = '2'
and (field1='ZM02' or field1='ZM03' or field1='ZM04' or field1='ZM05'
)

没用case when,好像能实现

good luck
------解决方案--------------------
ororor的那行少了个右括号。。。

good luck