mysql 函数
round()
在mysql中,round函数用于数据的四舍五入,它有两种形式:
round(x,d) # x指要处理的数,d是指保留几位小数
这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0; d可以是正数,这时是指定小数点右边的d位整数位为0,同时小数位均为0。
round(x) #其实就是round(x,0),也就是默认d为0
实例
查询: select round(1123.26723,2);
结果:1123.27
DATE_FORMAT()
timestampdiff()
时间差函数:TIMESTAMPDIFF
1 | TIMESTAMPDIFF (unit,begin,end) |
begin
和end
是指时间的起始和结束时间。可以为DATE或DATETIME类型,并且可允许参数为混合类型。unit
参数是确定(end-begin)时间差的单位,单位值如下表:
单位 | MySQL(UNIT) | DB2(UNIT) |
---|---|---|
毫秒 | 1 | |
秒 | second | 2 |
分钟 | minute | 4 |
小时 | hour | 8 |
天 | day | 16 |
周 | week | 32 |
月 | month | 64 |
季 | quarter | 128 |
年 | year | 256 |
AVG()
函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。
case when语句
case when语句,用于计算条件列表并返回多个可能结果表达式之一。
CASE 具有两种格式:简单 CASE 和复合 CASE。
简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。
CASE 搜索函数计算一组布尔表达式以确定结果。
两种格式都支持可选的 ELSE 参数。
用法1
用法2
查询语句:
1 | select id ,total_asset, |
用法3
case when…then…else…end
语句与sum
函数进行分组求和。
比如:想对不同地区的销售额进行求和
查询语句:
1 | select sum(case when city='b' then price else 0 end) as b_sum, --当city='b'时为price,否则为0,最后求和并且命名为b_sum。 |
用法4
case when…then…else…end语句按次序进行模糊匹配。
比如:手里有个list( ‘ucbrowser’, ‘baidubox’, ‘weixin’, ‘mqqbrowser’, ‘sogousearch’)——各大浏览器按次序排的.
IF函数:判断
1 | IF(expr,v1,v2) |
其中:表达式 expr 得到不同的结果,当 expr 为真是返回 v1 的值,否则返回 v2.
例子:
1 | SUM(IF(result = “wrong”, 1, 0)) AS w_question_cnt |
INSERT函数:替换字符串
1 | INSERT(s1,x,len,s2) |
返回字符串 s1,子字符串起始于 x 位置,并且用 len 个字符长的字符串代替 s2
IFNULL函数:判断是否为空
1 | IFNULL(v1,v2) |
其中:如果 v1 不为 NULL,则 IFNULL 函数返回 v1; 否则返回 v2 的结果。
concat()
功能:将多个字符串连接成一个字符串。
1 | concat(str1, str2,...) |
返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。
group_concat()
功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。
1 | group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] ) |
说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。
返回 MySql 系列