来来mysql 嵌套 case when,是不是不能这么写

来来mysql 嵌套 case when,是不是不能这么写,第1张

直接加在语句最后就行了。

UPDATE `member` SET score = (CASE WHEN score IS NOT NULL THEN score = 0 ELSE score = 1 END) where id =1

mysql数据库中CASE WHEN语句。

case when语句,用于计算条件列表并返回多个可能结果表达式之一。

CASE 具有两种格式:

简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。

CASE 搜索函数计算一组布尔表达式以确定结果。

两种格式都支持可选的 ELSE 参数。

本文介绍case when

case 包含两种表达格式:

第一种:简单case函数

参数:

input_expression 是使用简单 CASE 格式时所计算的表达式,是任何有效的SQL表达式。

when when_expression 使用简单 CASE 格式时 input_expression 所比较的简单表达式。when_expression 是任意有效的SQL表达式。input_expression 和每个 when_expression 的数据类型必须相同,或者是隐性转换。

[ ...n ]占位符 可以使用多个 when when_expression then result_expression 子句或 WHEN boolean_expression THEN result_expression 子句

then result_expression 当 input_expression = when_expression 取值为 true,或者 boolean_expression 取值为 true 时返回的表达式。

result expression 是任意有效的sql表达式。

esle else_result_expression

当比较运算取值不为 TRUE 时返回的表达式。如果省略此参数并且比较运算取值不为 TRUE,CASE 将返回 NULL 值。else_result_expression 是任意有效的sql表达式。Else_result_expression 和所有 result_expression 的数据类型必须相同,或者必须是隐性转换。

举例说明:

第二种:case搜索函数

参数介绍:

WHEN Boolean_expression 使用 CASE 搜索格式时所计算的布尔表达式。

Boolean_expression 是任意有效的布尔表达式。结果类型从 result_expressions 和可选 else_result_expression 的类型集合中返回最高的优先规则类型。有关更多信息,请参见数据类型的优先顺序。

CASE 搜索函数 :返回结果值介绍:

按指定顺序为每个 WHEN 子句的 Boolean_expression 求值。返回第一个取值为 TRUE 的 Boolean_expression 的 result_expression。

如果没有取值为 TRUE 的 Boolean_expression,则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。

举例说明:

case when 具体用法就说到这里,谢谢各位。

简单 CASE 函数:

CASE input_expression

    WHEN when_expression THEN result_expression

        [ ...n ]

    [ 

        ELSE else_result_expression

    END

CASE 搜索函数:

CASE    

WHEN Boolean_expression THEN result_expression

        [ ...n ]

    [ 

        ELSE else_result_expression

    END

比如:

第一种用法:

SELECT name,

       CASE WHEN birthday < '1981' THEN 'old' 

            WHEN birthday > '1988' THEN 'yong'

            ELSE 'ok' END YORN

FROM lee

第二种用法:

SELECT NAME, CASE name

    WHEN 'sam' THEN 'yong'

    WHEN 'lee' THEN 'handsome'

    ELSE 'good'  END as oldname

FROM lee


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8448235.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存