【发布时间】:2017-03-28 14:49:45
【问题描述】:
假设我们有一个名为“neighbors”的表,其中包含变量“name”,并且正在选择 name 并使用 CASE 语句将值分配给第二个变量“age”。可用于 SQL 中 CASE 语句的语法有两种不同的形式:
1) 简单的 CASE 表达式:
CASE name
WHEN 'George' THEN 36
WHEN 'Alfred' THEN 40
ELSE null
END as age
2) 搜索到的 CASE 表达式:
CASE
WHEN name = 'George' THEN 36
WHEN name = 'Alfred' THEN 40
ELSE null
END as age
这两个语句在做同样的事情。我的问题是,这些语句是如何在内存中处理的?它们的处理方式是否相同,或者可能一个比另一个更有效?
https://docs.microsoft.com/en-us/sql/t-sql/language-elements/case-transact-sql
【问题讨论】:
-
两个 CASE 表达式都不是有效的 T-SQL
-
我根据@JohnHC 更正编辑了语法。问题是成立的。
标签: sql case processing-efficiency