繁体   English   中英

嵌套的SQL案例语句

[英]Nested SQL case statement

我正在尝试存储单元状态。 我的案件陈述书在做什么? 我是SQL的新手。

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]

在此处输入图片说明

谢谢!

您的案例陈述缺少结尾。 但是,它们不必首先嵌套:

(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

SUBSTRING(sStatus, CHARINDEX(' ', sStatus + ' '), LEN(sStatus))

您收到此错误是因为您有3个CASE语句和一个END。

但是,根本不需要嵌套这些CASE语句。 您可以简单地做到这一点:

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 WHEN [sStatus] LIKE '%Notice%' THEN 'Notice'
     WHEN [sStatus] LIKE '%Occupied%' THEN 'Occupied'
     WHEN [sStatus] LIKE '%Vacant%' THEN 'Vacant'
     ELSE [sStatus] END as Status

你不需要其他所有的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM