二、流程控制函数
<1>CASE:
CASE value WHEN [value1] THEN result1 WHEN [value2] THEN result2 [ELSE result3] END (CASE语句在使用中十分灵活,这里只给出大致的语句方法)
若匹配value1,结果返回result1,若匹配value2结果返回result2,否则返回result3。
(作者在学习sql过程中喜欢建表,表格以及查询结果能让语句的作用体现得更加清晰易懂)
建表:
–表中性别用数字区分,默认1为男生,2为女生,其它为数据有误,使用case实现。
SELECT a.id 编号,a.name 姓名,CASE WHEN sex=1 THEN ‘男’ WHEN sex=2 THEN ‘女’ ELSE ‘输入有误’ END 性别
FROM clh_t_cd a;(省略了as)
<2>IF(expr1,expr2,expr3):
若expr1为true,则返回expr2,否则返回expe3。
<3>IFNULL(expr1,expr2):
若expr1不为null,则返回expr1,否则返回expr2。
<4>NULLIF(expr1,expr2):
若expr1=expr2成立,返回null,否则返回expr1。
三、日期时间函数
<1>DAYOFWEEK(date):求date是一周中第几天。
<2>DAYOFYEAR(date):求date是一年中的第几天。
<3>DATEOFMONTH(date):求date是一个月的第几天。
例:查询2017-06-02是一周的第几天
SELECT DAYOFWEEK(‘2017-06-02’);
查询结果:
<4>WEEKDAY(date):求date是周几(返回 范围0~6)。
<5>YEAR(date):求年份(返回 1000~9999)。
<6>quarter(date):求季度(返回 1~4)。
<7>month(date):求月份(返回1~12)。
例:查询2017-06-02是多少年
SELECT YEAR(‘2017-06-02’);
<8>curdate():求当前的年月日。
<9>curdate():求当前的时分秒。
<10>now():求当前的年月日,时分秒。
例:查询当前年月日 时分秒
<11>hour(time):(返回0~23)。
<12>minute(time):(返回0~59)。
<13>second(time):(返回0~59)。
例:查询13:26:08多少分钟数
SELECT MINUTE(‘13:26:08’)