首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套SQL case语句

问嵌套SQL case语句
EN

Stack Overflow用户
提问于 2015-08-14 19:52:55
回答 3查看 53关注 0票数 0

我在试着把单位的状态。我的案子陈述有什么不对?我对SQL很陌生。

代码语言:javascript
复制
CASE WHEN [sStatus] LIKE '%Notice%'
                THEN 'Notice'
            ELSE 
                CASE WHEN [sStatus] LIKE '%Occupied%'
                        THEN 'Occupied'
                    ELSE 
                        CASE WHEN [sStatus] LIKE '%Vacant%'
                                THEN 'Vacant'
                            ELSE [sStatus]
        END as [Status]

​

​

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-14 19:55:39

你的案例陈述没有结束。但是,它们不需要首先嵌套:

代码语言:javascript
复制
(CASE WHEN [sStatus] LIKE '%Notice%' THEN 'Notice'
      WHEN [sStatus] LIKE '%Occupied%' THEN 'Occupied'
      WHEN [sStatus] LIKE '%Vacant%' THEN 'Vacant'
      ELSE [sStatus]
 END) as [Status]

而且,如果你只想要第一个词,你根本不需要一个case:

代码语言:javascript
复制
SUBSTRING(sStatus, CHARINDEX(' ', sStatus + ' '), LEN(sStatus))
票数 2
EN

Stack Overflow用户

发布于 2015-08-14 19:54:41

您得到了错误,因为您有3个CASE语句,而只有一个结尾。

然而,根本没有必要嵌套这些案例陈述。您可以简单地这样做:

代码语言:javascript
复制
CASE 
  WHEN [sStatus] LIKE '%Notice%'
                THEN 'Notice'
  WHEN [sStatus] LIKE '%Occupied%'
                THEN 'Occupied'
  WHEN [sStatus] LIKE '%Vacant%'
                THEN 'Vacant'
  ELSE [sStatus]      
END as [Status]
票数 1
EN

Stack Overflow用户

发布于 2015-08-14 19:58:47

代码语言:javascript
复制
CASE WHEN [sStatus] LIKE '%Notice%' THEN 'Notice'
     WHEN [sStatus] LIKE '%Occupied%' THEN 'Occupied'
     WHEN [sStatus] LIKE '%Vacant%' THEN 'Vacant'
     ELSE [sStatus] END as Status

你不需要其他的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32017702

复制
相关文章

相似问题

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