SQL函数(四)

MAX()函数:

MAX()函数返回所选列的最大值;

SELECT MAX(column_name)

FROM table_name

WHERE condition;

SQL MIN()函数:

MIN()函数返回所选列的最小值;

SELECT MIN(column_name)

FROM table_name

WHERE condition;

COUNT()函数:

COUNT()函数返回符合指定条件的行数;NULL不计入;

SELECT COUNT(column_name)

FROM table_name

WHERE condition;

若要返回指定列的不同值的数目(适用于SQL Server和Oracle,不适用于 MS Access):

SELECT COUNT(DISTINCT column_name) FROM table_name;

AVG()函数:

AVG()函数返回数字列的平均值;

SELECT AVG(column_name)

FROM table_name

WHERE condition;

SUM()函数:

SUM()函数用于返回数字列的总和;

SELECT SUM(column_name)

FROM table_name

WHERE condition;

日期函数:(MySQL)

名称 描述
ADDDATE() 增加日期
ADDTIME() 增加时间
CONVERT_TZ() 将当前时区更改为另一时区
CURDATE() 返回当前日期

CURRENT_DATE()

CURDATE()的别名
CURRENT_TIME() CURTIME()的别名
CURRENT_TIMESTAMP NOW()的别名
CURTIME() 返回当前时间
DATE_ADD() 将两个日期相加
DATE_FORMAT() 按照指定格式格式化日期
DATE_SUB() 将两个日期相减
DATE() 从date或datetime中提取出日期部分
DATEDIFF() 将两个日期相减
DAY() DAYOFMONTH()的别名
DAYNAME() 返回某天在星期中的名称
DAYOFMONTH() 返回某天是当月的第几天
DAYOFWEEK() 返回某天是该星期的第几天
DAYOFYEAR() 一年中的第几天
EXTRACT() 提取日期中的某一部分
FROM_DAYS() 将天数转换为日期
FROM_UNIXTIME() 将某个日期转化为UNIX时间戳
HOUR() 提取小时
LAST_DAY() 返回参数日期所在月份的最后一天
LOCALTIME() NOW()的别名
LOCALTIMESTAMP() NOW()的别名
MAKEDATE() 利用年份和在改年中的天数来创建日期
MAKETIME() 返回从小时分钟,秒计算出的时间值
MICROSECOND() 由参数返回微秒
MINUTE() 由参数返回分钟
MONTH() 返回日期参数的月份
MONTHNAME() 返回月份的名字
NOW() 返回当前的日期和时间
PERIOD_ADD() 向年月格式的日期数据中添加一段时间
PERIOD_DIFF() 返回年月格式的日期数据之间的月份数
QUARTER() 返回日期参数所在的季度
SEC_TO_TIME() 将描述转换为“HH:SS:MM"格式
SECOND() 返回参数中的秒数
STR_TO_DATE() 以字符串转换为日期格式

SUBDATE()

以三个参数调用时是DATE_SUB()同义词
SUBTIME() 减去时间
SYSDATE() 返回函数执行时的时刻
TIME_FORMAT() 格式化时间
TIME_TO_SEC() 将时间参数转换为秒数
TIME() 反数参数表达式中的时间部分
TIMEDIFF() 将两个时间相减
TIMESTAMP() 只有一个参数时,返回date或datetime表达式。当由两个参数时,将两个参数相加
TIMESTAMPADD() 在datetime表达式上加上一段时间
TIMESTAMPDIFF() 在datetime表达式上减去一段时间
TO_DAYS() 将日期转换为天数
UNIX_TIMESTAMP() 返回UNIX时间戳
UTC_DATE() 返回当前UTC日期
UTC_TIME() 返回当前UTC时间
UTC_TIMESTAMP() 返回当前UTC时间和日期
WEEK() 返回参数的星期数
WEEKDAY() 返回日期参数是一个星期中的第几天
WEEKOFYEAR() 返回日期参数是一年的第几周
YEAR() 返回日期参数中的年份

YEARWEEK()

返回年份和星期

FIELD()函数:

 FIELD()函数返回的索引(从1开始)的str在str1,str2,str3...列表中。如果没有找到,则返回0;

FIELD(str,str1,str2,str3...);

FIRST()函数:

返回指定的列中的第一个记录的值;

SELECT FIRST(column_name )FROM table_name;(只有MS Access支持FIRST函数)

SQL Server :

SELECT TOP 1 column_name

FROM table_name

ORDER BY column_name ASC;

MySQL:

SELECT column_name FROM table_name

ORDER BY column_name ASC

LIMIT 1;

Oracle:

SELECT column_name FROM table_name

ORDER BY column_name ASC

WHERE ROWNUM<=1;

LAST()函数:

LAST()函数返回指定列中的最后一个记录的值;

SELECT LAST(column_name) FROM table_name;(MS Access)

SQL Server:

SELECT top 1 FROM table_name

ORDER BY column_name DESC;

MySQL:

SELECT column_name FROM table_name

ORDER BY column_name DESC

LIMIT 1;

Oracle:

SELECT column_name FROM table_name

ORDER BY column_name DESC

WHERE ROWNUM<=1;

GROUP BY语句:

GROUP BY 语句常与集合函数(COUNT,MAX,MIN,SUM,AVG)一起使用,以按一个或多个列对结果集进行分组;

SELECT column_name

FROM table_name

WHERE condition

GROUP BY column_name

ORDER BY column_name;

LOWER(s)函数和LCASE(s)函数:

LOWER(s)函数和LCASE(s)函数将字符串中所有字母字符转换为小写;

SELECT LOWER/LCASE(str) FROM table_name; (只有SQL Server支持LOWER()函数)

UPPER(s)函数和UCASE(s)函数:

将字符串所有字母转换为大写;

SELECT UPPER/UCASE(str) FROM table_name;(只有SQL Server支持UPPER()函数)

MID()函数:

MID()函数用于从文本字段中提取字符;

SELECT MID(column_name,start[,length])FROM table_name;

参数 描述
column_name 必需。要提取的字段
start 必须。规定开始位置(起始值是1)
length 可选。要返回的字符数,若省略,则MID()返回剩余文本

LEN()函数:

LEN()函数返回文本字段中的值的长度;

SELECT LEN(column_name) FROM table_name;

ROUND()函数:

ROUND()函数用于把数字字段舍入为指定的小数位数;

SELECT ROUND(column_name,decimals) FROM table_name;

decimals表示要返回的小数位数;

NOW()函数:

NOW()函数返回当前系统的日期和时间;

SELECT NOW() FROM tabel_name;

FORMAT()函数:

FORMAT()函数用于对字段的显示进行格式化;

SELECT FORMAT(column_name,format)FROM table_name;

format表示规定的格式;

SQRT()函数:

SQRT()函数用于计算得出任何数值的平方根;

SQRT(num);

SQL以浮点数类型来进行平方根的计算;

RAND()函数:

RAND()函数产生一个0到1 的随机数;

可使用ORDER BY RAND()对一组记录进行随机化排列;

CONCAT()函数:

CONCAT()函数用于将两个字符串连接为一个字符串;

SELECT CONCAT(str1,str2);

SQL ISNULL()、NVL()、IFNULL()、COALESCE()函数:

如果某一列值为NULL,则函数将会返回0:(SQL Server/MS Access)

ISNULL(column_name,0);

Oracle:

NVL(column_name,0);

MySQL:

IFNULL/COALESCE(column_name,0);

REPLACE()函数:

替换字符;

replace(original-string,searching-string,replace-string);

用replace-string 替换字符表达式original-string中出现的所有searching-string的匹配项,返回新的值。若某个参数为NULL,则返回NULL;

TRIM()函数:

TRIM()函数是用来移除掉一个字符串中的字头或字尾。在不同数据库中有不同的名称:

MySQL:TRIM()、RTRIM()、LTRIM();

Oracle:RTRIM()、LTRIM();

SQL Server:RTRIM()、LTRIM();

TRIM([[位置] [要移除的字符串] FROM ]字串):[位置]的可能值为LEADING(起头),REAILING(结尾)或BOTH(起头和结尾)。这个函数将把[要移除的字串]从字串的起头、结尾,或是起头及结尾处结尾。如果未列出[要移除的字段],则空白就会被移除;

LTRIM(str):将所有字串的起头的空白移除;

RTRIM(str):将所有字串的结尾的空白移除;

原文地址:https://www.cnblogs.com/liumuz/p/8910216.html