mysql中的case语句怎么用

mysql中的case语句怎么用,第1张

简单 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

ifnull()

你的第二个参数设置有误.

你可以这样试试:

MySQL ifnull()函数和nvl()函数类似,但是也有所不同,下面就为您详细介绍MySQLifnull()函数 ,希望可以让您对MySQL ifnull()函数有更深的认识.

IFNULL(expr1,expr2)

如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境.

mysql>select IFNULL(1,0)

->1

mysql>select IFNULL(0,10)

->0

mysql>select IFNULL(1/0,10)

->10

mysql>select IFNULL(1/0,'yes')

->'yes'

IF(expr1,expr2,expr3)

如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3.IF()返回一个数字或字符串值,取决于它被使用的上下文.

mysql>select IF(1>2,2,3)

->3

mysql>select IF(1<2,'yes','no')

->'yes'

mysql>select IF(strcmp('test','test1'),'yes','no')

->'no'

expr1作为整数值被计算,它意味着如果你正在测试浮点或字符串值,你应该使用一个比较 *** 作来做.

mysql>select IF(0.1,1,0)

->0

mysql>select IF(0.1<>0,1,0)

->1

在上面的第一种情况中,IF(0.1)返回0,因为0.1被变换到整数值, 导致测试IF(0).这可能不是你期望的.在第二种情况中,比较测试原来的浮点值看它是否是非零,比较的结果被用作一个整数.

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END

CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

第一个版本返回result,其中value=compare-value.第二个版本中如果第一个条件为真,返回result.如果没有匹配的result值,那么结果在ELSE后的result被返回.如果没有ELSE部分,那么NULL被返回.

mysql>SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END

->"one"

mysql>SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END

->"true"

mysql>SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END

->NULL

MySQL是一个关系型数据库管理系统。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。

MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。 由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。

case when有两个用法,一个是行转列,一个是更改列的值

在数据分析时经常要用到行转列,此时如果使用case when就会方便很多,case when的熟练使用程度,可以说的判断对SQL *** 作水平的评定方法之一。

case when的语句在某种程度上可以理解成是if函数的简便逻辑写法,主要有两种模式

模式一(简单变量表达式):

模式二(搜索变量表达式):

通常情况下,模式二的方式会更加灵活,在工作中也推荐使用模式二的写法(特别是如果有使用Tableau等软件制作参数的时候,语法跟模式二的相同的)。

看具体的例子:

如果现在想要看不同学生的平均分和每个课程的成绩,并且不同课程按列进行显示,要怎么 *** 作呢?

这个时候,使用case when就很方便了

当然了,也可以使用case when对学生的成绩进行优良中差的判断,这个在工作中的使用场景也是蛮多的,如果有兴趣的同学可以自己试着练习看看。

这个就是case when在MySQL中的常用用法。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存