CASE 表达式只嵌入10层,超过就会出错,
谁有解决办法........... TKS !~!~!~!SELECT
CASE sGroupID
WHEN '0001' THEN '320106'
WHEN '0002' THEN '320113'
WHEN '0003' THEN '320104'
WHEN '0004' THEN '320102'
WHEN '0005' THEN '320114'
WHEN '0006' THEN '320105'
WHEN '0007' THEN '320103'
WHEN '0008' THEN '320115'
WHEN '0009' THEN '320107'
WHEN '000A' THEN '320125'
WHEN '000B' THEN '320198'
--还没完,还有要转换的
ELSE '320100'
END
FROM PrimaryNew.NDSPrimaryNew.dbo.VCompany
谁有解决办法........... TKS !~!~!~!SELECT
CASE sGroupID
WHEN '0001' THEN '320106'
WHEN '0002' THEN '320113'
WHEN '0003' THEN '320104'
WHEN '0004' THEN '320102'
WHEN '0005' THEN '320114'
WHEN '0006' THEN '320105'
WHEN '0007' THEN '320103'
WHEN '0008' THEN '320115'
WHEN '0009' THEN '320107'
WHEN '000A' THEN '320125'
WHEN '000B' THEN '320198'
--还没完,还有要转换的
ELSE '320100'
END
FROM PrimaryNew.NDSPrimaryNew.dbo.VCompany
CASE sGroupID
WHEN '0001' THEN '320106'
WHEN '0002' THEN '320113'
WHEN '0003' THEN '320104'
WHEN '0004' THEN '320102'
WHEN '0005' THEN '320114'
WHEN '0006' THEN '320105'
WHEN '0007' THEN '320103'
WHEN '0008' THEN '320115'
WHEN '0009' THEN '320107'
WHEN '000A' THEN '320125'
WHEN '000B' THEN '320198'
WHEN '000C' THEN '320199'
WHEN '000D' THEN '320299'
WHEN '000E' THEN '320399'
WHEN '000F' THEN '320499'
WHEN '0010' THEN '320599'
WHEN '0011' THEN '320699'
ELSE '320100'
END
from
(select '0009' as sGroupID) t
我要查询好几个字段
select AA,BB,CASE sGroupID
WHEN '0001' THEN '320106'
WHEN '0002' THEN '320113'
......
from ...........
刚才按照你那样的写法,只输出了一行结果 320107
PrimaryNew.NDSPrimaryNew.dbo.VCompanyPrimaryNew: 链接服务器名
NDSPrimaryNew: 数据库名
VCompany: 表名
case aa
when '' then '' --套10层
else
case aa
when '' then'' --在套10层
end
end
这样也不行 也是出一样的错
begin
case ...
end
else
begin
case ...
end
也可以用if elseif elseif 再把case写到case中去就行了
sql 看起来 也漂亮
sql 看起来 也漂亮