嵌套 SQL 个 case 语句
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]
谢谢!
您收到错误是因为您有 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]
而且,如果您只想要第一个词,则根本不需要 case
:
SUBSTRING(sStatus, CHARINDEX(' ', sStatus + ' '), LEN(sStatus))
CASE WHEN [sStatus] LIKE '%Notice%' THEN 'Notice'
WHEN [sStatus] LIKE '%Occupied%' THEN 'Occupied'
WHEN [sStatus] LIKE '%Vacant%' THEN 'Vacant'
ELSE [sStatus] END as Status
你不需要所有这些
我正在尝试存储单位状态。我的案例陈述有什么问题?我是 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]
谢谢!
您收到错误是因为您有 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]
而且,如果您只想要第一个词,则根本不需要 case
:
SUBSTRING(sStatus, CHARINDEX(' ', sStatus + ' '), LEN(sStatus))
CASE WHEN [sStatus] LIKE '%Notice%' THEN 'Notice'
WHEN [sStatus] LIKE '%Occupied%' THEN 'Occupied'
WHEN [sStatus] LIKE '%Vacant%' THEN 'Vacant'
ELSE [sStatus] END as Status
你不需要所有这些