案例表达与案例陈述
MySQL中的Case表达式和Case语句有什么区别?什么时候可以使用它们?与另一种相比,使用它们有什么好处?
Case Statement语法:
CASE WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
案例表达语法:
CASE WHEN [condition] THEN result
[WHEN [condition] THEN result ...]
[ELSE result]
END
这些看起来几乎相同,但是对Case Statements的最初描述是: The CASE statement for stored programs
implements a complex conditional construct.
那么,在存储程序中使用一个而不在普通查询中使用它的显着区别是吗?我在正在使用的查询中尝试了此操作,但失败了-sqlfiddle。如果是这种情况,为什么不只在存储程序中使用Case
Expression?
还有其他语法上的差异,因为它们似乎是相同的?
回答:
该CASE
表达式根据某个条件求值,即用于对一组结果之一求值。
例:
SELECT CASE WHEN type = 1 THEN 'foo'
WHEN type = 2 THEN 'bar'
ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`
该CASE
语句根据某种条件执行一组语句中的一个。
例:
CASE WHEN action = 'update' THEN
UPDATE sometable SET column = value WHERE condition;
WHEN action = 'create' THEN
INSERT INTO sometable (column) VALUES (value);
END CASE
您将看到它们的相似之处,但是该语句 不会
求值,并且可以单独使用,而表达式需要成为表达式的一部分,例如查询或赋值。您不能在查询中使用该语句,因为查询不能包含语句,因此仅需要对某些内容求值的表达式(从SELECT
CASE WHEN condition THEN UPDATE table SET something; END
CASE某种意义上说,查询本身就是一条语句),例如,没有任何意义。
以上是 案例表达与案例陈述 的全部内容, 来源链接: utcz.com/qa/408441.html