SQL常用函数汇总说明,COALESCE函数NULL值转化/选择。

1、转换函数

COALESCE(可变参数),返回从左侧数第一个不为NULL的值;如下代码清单就实现了将列中的NULL值转化为其他值的功能。

SELECT
	COALESCE (Product.regist_date, 'NULL') AS NON_NULL
FROM
	Product;

CAST(expr AS type),将expr转换为指定类型,这里面有一个坑,就是type只能限定如下类型可以使用(不能想当然的以为支持所有数据类型):

BINARY[(N)]
CHAR[(N)]
DATE
TIME
DATETIME
DECIMAL
SIGNED [INTEGER]
UNSIGNED [INTEGER]
/*
将字符串转化为DECIMAL类型
*/
SELECT
	cast('221.6666' AS DECIMAL(5,2)) AS oo
FROM
	Product

2、日期函数

CURRENT_DATE返回SQL执行的日期;CURRENT_TIME返回SQL执行的时间;CURRENT_TIMESTAMP返回SQL执行的日期和时间。

SELECT
	CURRENT_DATE AS date,
	CURRENT_TIME AS time,
	CURRENT_TIMESTAMP AS stamp;

EXTRACT函数用来截取日期中数据的一部分:

SELECT
	CURRENT_TIMESTAMP,
	EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS YEAR,
	EXTRACT(MONTH FROM CURRENT_TIMESTAMP) AS MONTH,
	EXTRACT(DAY FROM CURRENT_TIMESTAMP) AS DAY,
	EXTRACT(HOUR FROM CURRENT_TIMESTAMP) AS HOUR,
	EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) AS MINUTE,
	EXTRACT(SECOND FROM CURRENT_TIMESTAMP) AS SECOND;

MySql常用日期函数汇总:

ADDDATE('2018-01-01',32);参数一日期,参数二是天数
ADDTIME('2018-01-01 12:30:15.222222','1 1:1:1.000002');expr1 是一个时间或日期时间表达式
,expr2是一个时间表达式
DATEDIFF(expr1,expr2) 计算两个日期差
DAYOFWEEK(date)对于一个日期返回是星期几
DATE()提取日期部分
TIME提取时间部分

3、字符串函数

SELECT LEFT('abcd',2);-- 返回左边的两个字符
SELECT LENGTH('abcd');-- 返回串的长度
select LOCATE('b','abcd');-- 返回串的一个子串位置;
SELECT LOWER('Abcd');-- 转化为小写
SELECT LTRIM(' bbb'); -- 去掉左边的空格
-- SOUNDEX(str); -- 返回soundex值
SELECT SUBSTRING('abdfg',3,3); -- 返回子串,从第三个位置长度为三的子串

SOUNDEX()函数是一个将任何文本串转换为描述语音表示的字母模式的算法。它考虑了类似于发音字符和字节,能够对文本发音进行比较而不是字母比较。如果库中存在一名名为Y.LEE的客户而搜索的时候的输入错误,下面的第一种sql是不会有任何返回结果的,而使用SOUNDEX值匹配可以得出正确结果:

SELECT CUSTOMER_NAME FROM CUSTOMER WHERE CUSTOMER_NAME = 'Y LEE'
SELECT CUSTOMER_NAME FROM CUSTOMER WHERE SOUNDEX(CUSTOMER_NAME) =SOUNDEX('Y LEE')

4、算数函数

+-*/都是可以进行简单的算数运算,它们是最基本的函数。常用算数函数:

展开阅读全文

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java