首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MS大小写嵌套错误但不嵌套

MS大小写嵌套错误但不嵌套
EN

Stack Overflow用户
提问于 2013-05-02 08:06:34
回答 1查看 1.2K关注 0票数 1

我在MS上遇到了一个问题:

我用的是一个有很多陈述的案例,如下所示:

代码语言:javascript
复制
select
e.[Nom d'annuaire],
e.[Prénom annuaire],
f.[Nom d'annuaire en UTF-8] AS login,
e.Usagers as [Numéro interne],
d.[Numéro externe],
s.[Préfixe No abr direct],
v.fonction,

  CASE
           WHEN v.lib_delegation = 'Service informatique' THEN 'Euralille'
           WHEN v.delegation = 'test_national' THEN 'Maillot'
           WHEN v.delegation = 'test_tpe' THEN 'Maillot'
           WHEN v.delegation = 'test_paris-idf' THEN 'Maillot'
           WHEN v.delegation = 'test_grands-comptes' THEN 'Maillot'
           WHEN v.delegation = 'cotestrm' THEN 'Marcq en baroeul'
           WHEN v.delegation = 'test_sud-ouest' THEN 'Bruges'
           WHEN v.delegation = 'test_normandie' THEN 'Caen'
           WHEN v.delegation = 'test_bourgogne' THEN 'Dijon'
           WHEN v.delegation = 'test_ouest' THEN 'Ouest'
           WHEN v.lib_delegation = 'Centre Limousin' THEN 'Tours'
           WHEN v.delegation = 'test_est' THEN 'Nancy'
           WHEN v.delegation = 'test_mediterranee' THEN 'Aix'
           WHEN v.delegation = 'test_rhone-alpes' THEN 'Lyon'
           ELSE v.delegation
        END AS Délégation,
        v.lib_delegation

from ale e 

INNER JOIN ale f
on e.Usagers = f.Usagers AND f.[No alias] = 1 and e.[No Alias] = 0

INNER JOIN Delegation d
on f.Usagers = d.[No annuaire]

INNER JOIN V_users v
on v.LOGIN = f.[Nom d'annuaire en UTF-8]

LEFT OUTER JOIN svi s
on e.Usagers = s.[No d'appel] 

order by e.Usagers

正如您所看到的,我的CASE语句是不需要CASE的,因为我使用的是WHEN... THEN ...语法,然后我只使用ELSE ... END语句。

但是,当我尝试使用filter等方法过滤输出时:

代码语言:javascript
复制
WHERE [Délégation] = 'Euralille'

我只看到两个错误:

Msg 8180,16级,国家一级,1号线

Msg 125级,15级,4级,1线

对错误编号的解释:

  • Msg 8180 =无法准备语句。
  • Msg 125 = Case表达式只能嵌套到级别%d。

(对法国的拙劣贸易行为表示歉意)

我一直在MS网站上和StackOverflow上寻找答案,但问题总是在于案例陈述是不正确的。但对我来说,我不是这种情况..。

提前谢谢,我是这个世界上的新手。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-02 10:57:52

你是这样过滤的吗?请注意,我将所有查询放入子查询中,然后应用where子句:

代码语言:javascript
复制
select * from 
(select
e.[Nom d'annuaire],
e.[Prénom annuaire],
f.[Nom d'annuaire en UTF-8] AS login,
e.Usagers as [Numéro interne],
d.[Numéro externe],
s.[Préfixe No abr direct],
v.fonction,

  CASE
           WHEN v.lib_delegation = 'Service informatique' THEN 'Euralille'
           WHEN v.delegation = 'test_national' THEN 'Maillot'
           WHEN v.delegation = 'test_tpe' THEN 'Maillot'
           WHEN v.delegation = 'test_paris-idf' THEN 'Maillot'
           WHEN v.delegation = 'test_grands-comptes' THEN 'Maillot'
           WHEN v.delegation = 'cotestrm' THEN 'Marcq en baroeul'
           WHEN v.delegation = 'test_sud-ouest' THEN 'Bruges'
           WHEN v.delegation = 'test_normandie' THEN 'Caen'
           WHEN v.delegation = 'test_bourgogne' THEN 'Dijon'
           WHEN v.delegation = 'test_ouest' THEN 'Ouest'
           WHEN v.lib_delegation = 'Centre Limousin' THEN 'Tours'
           WHEN v.delegation = 'test_est' THEN 'Nancy'
           WHEN v.delegation = 'test_mediterranee' THEN 'Aix'
           WHEN v.delegation = 'test_rhone-alpes' THEN 'Lyon'
           ELSE v.delegation
        END AS Délégation,
        v.lib_delegation

from ale e 

INNER JOIN ale f
on e.Usagers = f.Usagers AND f.[No alias] = 1 and e.[No Alias] = 0

INNER JOIN Delegation d
on f.Usagers = d.[No annuaire]

INNER JOIN V_users v
on v.LOGIN = f.[Nom d'annuaire en UTF-8]

LEFT OUTER JOIN svi s
on e.Usagers = s.[No d'appel] 

order by e.Usagers) as subTotalQuery
WHERE [Délégation] = 'Euralille'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16333175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档