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 

解决方案 »

  1.   

    测试一下: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'
    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
      

  2.   

    我要查询的是这张表  PrimaryNew.NDSPrimaryNew.dbo.VCompany这样输出的结果是 '320107'
      

  3.   

    没有出错,
    我要查询好几个字段
    select AA,BB,CASE sGroupID
    WHEN '0001' THEN '320106'
    WHEN '0002' THEN '320113'
    ......
    from ...........
    刚才按照你那样的写法,只输出了一行结果  320107
      

  4.   

    需要:
    PrimaryNew.NDSPrimaryNew.dbo.VCompanyPrimaryNew: 链接服务器名
    NDSPrimaryNew: 数据库名
    VCompany: 表名
      

  5.   

    zlp321002()  这个我知道,这个不管,都正确的
    case aa
         when '' then '' --套10层
         else
            case aa
               when '' then''  --在套10层
         end
    end
    这样也不行 也是出一样的错
      

  6.   

    if aa=''
    begin
      case ...
    end
    else
    begin
      case ...
    end
      

  7.   

    可以用goto来加多case
    也可以用if elseif elseif 再把case写到case中去就行了
      

  8.   

    你写一个字定义函数 多好啊
    sql 看起来 也漂亮
      

  9.   

    你写一个 自定义函数 多好啊
    sql 看起来 也漂亮