简单判断:
要判断值的列写在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 )
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)