mysql的case when语句

mysql的case when语句,第1张

case when的两种写法

简单判断:

要判断值的列写在case后面,when后面写值,相等的情况执行then后的语句,可以写多个when判断语句,都不满足返回else后的值,要以end结尾,end后面可以给该列指定列名。

CASE [col_name]

WHEN [value1] THEN [result1]

WHEN [value1] THEN [result2]

....

ELSE [default]

END [new_col_name]

表达式判断:

case开头,when后面写表达式,表达式为真则执行then后的语句,可以写多个when判断表达式,都不满足的情况下返回else后的值,以end结尾,end后可以为该列指定列名。

CASE

WHEN [expr] THEN [result1]

WHEN [expr] THEN [result2]

....

ELSE [default]

END [new_col_name]

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可组成良好的开发环境。

大致思路: 拼一个字符:

规定时间内:字符1开始,后面连接a

时间之外:字符2开始,后面连接b

具体语法你修改:

order by ( case when time >=1338048000 and time <= 1338307200 then '1'+a else '2'+b end )


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存