星空网 > 软件开发 > 数据库

SQL常用函数总结

 sql中COALESCE()函数的功能
返回其参数中的第一个非空表达式。这个函数是对null进行判断,而不是‘’。
 sql trim()函数
去掉两头空格
sql语法中没有直接去除两头空格的函数,但有ltrim()去除左空格rtrim()去除右空格。
合起来用就是sql的trim()函数,即select ltrim(rtrim(UsrName))
 NULLIF
如果两个指定的表达式相等,则返回空值。
语法NULLIF ( expression1 , expression2 )
参数expression1,expression2
常量、列名、函数、子查询或算术运算符、按位运算符以及字符串运算符的任意组合。
返回类型返回类型与第一个 expression1 相同。
输出结果:
如果两个表达式不相等,NULLIF 返回第一个 expression1 的值。
如果两个表达式相等,NULLIF 返回空值NULL。  
SQLServer函数是一样的功能
例子: PRINT NULLIF('222','') --返回222
PRINT ISNULL(NULLIF('222','222'),'23') --返回23 证明返回的是null

 char函数
char(current date,ISO)——转换成yyyy-mm-dd
char(current date,USA)——转换成mm/dd/yyyy
char(current date,EUR)——转换成dd.mm.yyyy

 Date函数
DATE()函数是提取日期或日期/时间表达式的日期部分。
MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
YEAR - 格式 YYYY 或 YY

SQL Server 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: 唯一的数字

 SQL 中ROLLUP 用法
ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集。
下面是 CUBE 和 ROLLUP 之间的具体区别:
CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。
ROLLUP 优点:
(1)ROLLUP 返回单个结果集,而 COMPUTE BY 返回多个结果集,而多个结果集会增加应用程序代码的复杂性。
(2)ROLLUP 可以在服务器游标中使用,而 COMPUTE BY 则不可以。
(3)有时,查询优化器为 ROLLUP 生成的执行计划比为 COMPUTE BY 生成的更为高效。

下面对比一下GROUP BY 、CUBE 和 ROLLUP后的结果
创建表:

CREATE TABLE DEPART (部门 char(10),员工 char(6),工资 int)INSERT INTO DEPART SELECT 'A','ZHANG',100 INSERT INTO DEPART SELECT 'A','LI',200 INSERT INTO DEPART SELECT 'A','WANG',300 INSERT INTO DEPART SELECT 'A','ZHAO',400 INSERT INTO DEPART SELECT 'A','DUAN',500 INSERT INTO DEPART SELECT 'B','DUAN',600 INSERT INTO DEPART SELECT 'B','DUAN',700

部门 员工 工资
A ZHANG 100
A LI 200
A WANG 300
A ZHAO 400
A DUAN 500
B DUAN 600
B DUAN 700

(1)GROUP BY

SELECT 部门,员工,SUM(工资)AS TOTAL FROM DEPART GROUP BY 部门,员工

  


结果:
A DUAN 500
B DUAN 1300
A LI 200
A WANG 300
A ZHANG 100
A ZHAO 400
(2)ROLLUP

SELECT 部门,员工,SUM(工资)AS TOTAL FROM DEPART GROUP BY 部门,员工 WITH ROLLUP

  


结果如下:

A DUAN 500 A LI 200 A WANG 300 A ZHANG 100 A ZHAO 400 A NULL 1500 B DUAN 1300 B NULL 1300 NULL NULL 2800

  


ROLLUP结果集中多了三条汇总信息:即部门A的合计,部门B的合计以及总合计。其中将部门B中的DUAN合计。
等价于下列SQL语句

SELECT 部门,员工,SUM(工资)AS TOTAL FROM DEPART GROUP BY 部门,员工 union SELECT 部门,'NULL',SUM(工资)AS TOTAL FROM DEPART GROUP BY 部门 union SELECT 'NULL','NULL',SUM(工资)AS TOTAL FROM DEPART

结果:
A DUAN 500
A LI 200
A NULL 1500
A WANG 300
A ZHANG 100
A ZHAO 400
B DUAN 1300
B NULL 1300
NULL NULL 2800
(3)CUBE

SELECT 部门,员工,SUM(工资)AS TOTAL FROM DEPART GROUP BY 部门,员工 WITH CUBE

结果:
A DUAN 500
A LI 200
A WANG 300
A ZHANG 100
A ZHAO 400
A NULL 1500
B DUAN 1300
B NULL 1300
NULL NULL 2800
NULL DUAN 1800
NULL LI 200
NULL WANG 300
NULL ZHANG 100
NULL ZHAO 400
CUBE的结果集是在 ROLLUP结果集的基础上多了5行,这5行相当于在ROLLUP结果集上在union 上以员工 (即CUBE)为 GROUP BY的结果。

SELECT 部门,员工,SUM(工资)AS TOTAL FROM DEPART GROUP BY 部门,员工 WITH CUBE

等价于下列的SQL语句:

SELECT 部门,员工,SUM(工资)AS TOTAL FROM DEPART GROUP BY 部门,员工 WITH ROLLUPunionSELECT 'NULL',员工,SUM(工资)AS TOTAL FROM DEPART GROUP BY 员工

结果:
NULL NULL 2800
A NULL 1500
A DUAN 500
A LI 200
A WANG 300
A ZHANG 100
A ZHAO 400
B NULL 1300
B DUAN 1300
NULL DUAN 1800
NULL LI 200
NULL WANG 300
NULL ZHANG 100
NULL ZHAO 400

 UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法

SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2

注释:默认地,UNION 操作符选取不同的值,即UNION是去了重的。如果允许重复的值,请使用 UNION ALL。
SQL UNION ALL 语法

SELECT column_name(s) FROM table_name1UNION ALLSELECT column_name(s) FROM table_name2

另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。




原标题:SQL常用函数总结

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

一文读懂加拿大的 GST/HST 税务欺诈:https://www.kjdsnews.com/a/1454292.html
110家亚马逊店铺被冻结!又一关键词起诉侵权,listing上不能出现!:https://www.kjdsnews.com/a/1454293.html
开拓墨西哥市场,注册RFC税号需要注意什么?:https://www.kjdsnews.com/a/1454294.html
独家丨SHEIN将在墨西哥建厂:https://www.kjdsnews.com/a/1454295.html
朴西(POSEE)出海记:一双拖鞋走全球:https://www.kjdsnews.com/a/1454296.html
Facebook产品更新∣Meta 官方开始改进网站转化广告系列:https://www.kjdsnews.com/a/1454297.html
字节跳动辟谣!TikTok收紧美国开店政策为不实信息:https://www.goluckyvip.com/news/188212.html
2024北京庞各庄镇梨花节开幕时间是几号?:https://www.vstour.cn/a/365179.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流