sql函数小总结

一、去空格函数
1、LTRIM() 把字符串头部的空格去掉。
2、RTRIM() 把字符串尾部的空格去掉。




二、统计函数
AVG ( ) -返回的平均价值 
count( ) -返回的行数 
first( ) -返回第一个值 
last( ) -返回最后一个值 
max( ) -返回的最大价值 
min( ) -返回最小的价值 
total( ) -返回的总和
日期函数:CURDATE() 函数返回当前的日期。2017-12-30


NOW()                CURDATE()       CURTIME()
2008-12-29 16:25:46 2008-12-29 16:25:46




DATE_SUB() 函数从日期减去指定的时间间隔。
例:DATE_SUB(CURDATE(),INTERVAL 7 DAY) 最近7天
DATE_SUB(date,INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
type 参数可以是下列值:






GROUP_CONCAT(name SEPARATOR ' ')空格分隔符,默认是 ,




三、datediff()
简单介绍一下datediff()函数。
定义和用法
DATEDIFF() 函数返回两个日期之间的天数。
语法
DATEDIFF(datepart,startdate,enddate)
startdate 和 enddate 参数是合法的日期表达式。
datepart 参数可以是下列的值:




四、一些例子


①、rq           胜负
    2017-02-06   胜
    2017-02-06   负
    2017-02-07   负
    2017-02-07   负
查询结果:
    rq         胜    负
   2017-02-06   1     1
   2017-02-07   0     2


方法一:
SELECT rq ,
SUM(CASE WHEN shengfu='胜' THEN 1 ELSE 0 END)AS sheng,
SUM(CASE WHEN shengfu='负' THEN 1 ELSE 0 END)AS fu
FROM t GROUP BY rq


方法二:
SELECT a.rq,a.sheng,b.fu FROM 
(SELECT rq,sheng=COUNT(*)FROM tem WHERE shengfu='胜' GROUP BY rq)a 
INNER JOIN 
(SELECT rq,fu=COUNT(*)FROM tem WHERE shengfu='fu'GROUP BY rq)b
ON a.rq=b.rq


②、 
    姓名   科目    成绩
    李四   语文      90
    李四   数学      79
    王五   数学      80
    王五   英语      90
    赵六   英语      87
    周六   语文      79
查询每门课都大于80的学生姓名


方法一:
SELECT DISTINCT mingzi FROM TABLE
WHERE mingzi NOT IN (SELECT DISTINCT mingzi FROM TABLE WHERE fenshu<=80)


方法二:
SELECT mingzi 
FROM TABLE 
GROUP BY mingzi 
HAVING MIN(fenshu)>80

猜你喜欢

转载自blog.csdn.net/black_tshirt/article/details/79217078