问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQL 有哪些函数?SQL中有哪些函数

发布网友 发布时间:2022-04-29 18:41

我来回答

2个回答

懂视网 时间:2022-04-29 23:03

--字符替换
select translate(‘abcdefgabcdef‘,‘abc‘,‘123‘) from dual;
select translate(‘agbfceddeafbgc‘,‘abc‘,‘123‘) from dual;

--字符串替换
select replace(‘abcdaefgdefadf‘,‘de‘,‘34‘) from dual;

--查找字符串所在位置:索引从1开始
SELECT instr(‘abcdefg‘,‘f‘) from dual;

--字符串截取:从3开始截取2位
SELECT Substr(‘abcdefg‘,3,2) from dual;

--字符串拼接:
SELECT CONCAT(‘abc‘,‘def‘),‘abc‘||‘def‘ from dual;

--获取字符串长度
SELECT LENGTH(‘abcdefg‘) from dual;

 

--数字函数
--取绝对值
SELECT ABS(12),ABS(-23) from dual;

--CEIL向上取整,floor向下取整
SELECT
CEIL(123.111),CEIL(-123.111),
FLOOR(123.999),FLOOR(-123.999) FROM dual;

--四舍五入
SELECT ROUND(153.454,2),ROUND(153.454,-2) FROM dual;

--截断
SELECT TRUNC(123.567,2) from dual;


--开平方根
SELECT SQRT(16) FROM dual;

--求冥
SELECT POWER(2,3) FROM dual;

 

--日期函数
--获取当前系统时间
SELECT SYSDATE from dual;


--两个日期之间的月份
SELECT months_between(to_date(‘2014-10-3‘,‘yyyy-mm-dd‘),SYSDATE) FROM dual;

--日期加减法
SELECT add_months(SYSDATE,-1) FROM dual;

--指定日期后的星期几是几月几号
SELECT next_day(SYSDATE,‘星期二‘) FROM dual;

--获取指定月的最后一天。
SELECT last_day(SYSDATE) FROM dual;

--round四舍五入
to_date(‘2014-5-20‘,‘yyyy-mm-dd‘) FROM dual;
SELECT
ROUND(to_date(‘2014-8-20‘,‘yyyy-mm-dd‘),‘YEAR‘),
ROUND(to_date(‘2014-5-20‘,‘yyyy-mm-dd‘),‘month‘),
ROUND(to_date(‘2014-5-20‘,‘yyyy-mm-dd‘),‘day‘)
from dual;

--trunc:日期截断
SELECT
TRUNC(to_date(‘2014-8-20‘,‘yyyy-mm-dd‘),‘YEAR‘),
TRUNC(to_date(‘2014-5-20‘,‘yyyy-mm-dd‘),‘month‘),
TRUNC(to_date(‘2014-5-20‘,‘yyyy-mm-dd‘),‘day‘)
from dual;


--转换函数
--tochar:其他类型转换为字符串
SELECT to_char(SYSDATE,‘yyyy-mm-dd‘) FROM dual;
SELECT to_char(123456.123,‘999,999.999‘) from dual;

--to_date:将其他类型转换为日期
SELECT to_date(‘2014-10-20‘,‘yyyy-mm-dd‘) FROM dual;

--to_number:将其他类型转换为数字
SELECT to_number(‘123456‘) from dual;

 

--其他函数
--nvl(exp1,exp2):判断exp1是否为null,如果为null则反悔exp2,不为空则返回本身
SELECT ename, nvl(comm,0) FROM scott.emp;

--nvl(exp1,exp2,exmp3):判断exp1是否为null,如果为null则反悔exp2,不为空则返回exp3
SELECT ename,NVL2(comm,0,100) from scott.emp;

--sql中的switch结构
SELECT ename,job,DECODE(job,‘CLERK‘,‘业务员‘,‘SALESMAN‘,‘销售员‘,‘MANAGER‘,‘经理‘) FROM scott.emp;

 


--聚合函数:对列中的进行汇总或计算
--聚合函数不能和普通列一起出现,除非这个列是分组列
SELECT deptno,
MAX(sal) AS 最高,
MIN(sal) AS 最低,
SUM(sal) AS 总金额,
AVG(sal) AS 平均,
COUNT(*) AS 总人数
FROM scott.emp
WHERE sal > 1000
GROUP BY deptno
HAVING COUNT(*) > 3


--分析函数
SELECT ename,deptno,sal,
row_number() OVER(PARTITION BY deptno ORDER BY sal DESC) AS row_numer,
RANK() OVER(PARTITION BY deptno ORDER BY sal DESC) AS RANK,
dense_rank() OVER(PARTITION BY deptno ORDER BY sal DESC) AS dense_rank
FROM scott.emp;

--对查询结果进行一个自动编号
SELECT ROWNUM AS rnum,ename,deptno,sal FROM scott.emp;

sql函数

标签:

热心网友 时间:2022-04-29 20:11

聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体有哪些聚合函数呢?我们来一一看一下:

AVG  返回指定组中的平均值,空值被忽略。

例:select  prd_no,avg(qty) from sales group by prd_no

2. COUNT  返回指定组中项目的数量。

例:select  count(prd_no) from sales 

3. MAX  返回指定数据的最大值。

例:select  prd_no,max(qty) from sales group by prd_no 

4. MIN  返回指定数据的最小值。

例:select  prd_no,min(qty) from sales group by prd_no

5. SUM  返回指定数据的和,只能用于数字列,空值被忽略。

例:select  prd_no,sum(qty) from sales group by prd_no

6. COUNT_BIG  返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。

例:select  count_big(prd_no) from sales

7. GROUPING  产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.

例:select  prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup

8. BINARY_CHECKSUM  返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。

例:select  prd_no,binary_checksum(qty) from sales group by prd_no

9. CHECKSUM_AGG  返回指定数据的校验值,空值被忽略。

例:select  prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no

10. CHECKSUM  返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。

11. STDEV  返回给定表达式中所有值的统计标准偏差。

例:select  stdev(prd_no) from sales

12. STDEVP  返回给定表达式中的所有值的填充统计标准偏差。

例:select  stdevp(prd_no) from sales

13. VAR  返回给定表达式中所有值的统计方差。

例:select  var(prd_no) from sales

14. VARP  返回给定表达式中所有值的填充的统计方差。

例:select  varp(prd_no) from sales

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 银行转账支票时间遇到春节放假什么办 支票有效期在春节期间的顺延是怎么算的? 到期日起10内付款 怎么算 我照彩超是腹壁皮下软组织内皮脂腺囊肿,请大家告诉我这严重吗,必须要手术吗?谢谢! 支票入帐 集成显卡与独立显卡的区别?那个好? 农历春节期间转账支票能进账吗 皮脂腺囊肿是什么病,严重么? 农行商户收款用的是e融通吗 e融通有逾期也能贷款是真的吗 e融通收款会延迟收到信息吗 e融通怎么没得收款信息? 农行收款e融通显示商户已停用是怎么回事? 农行的金穗e融通能联系上付款方吗? e融通手续费 农行聚合收款码申请后e融通收款码还能用吗 看图写话青蛙荷叶 中班主题墙春天池塘里除了蝌蚪还能画什么不要青蛙和荷花说有图!!急需班上布置!! 看图写话,池塘里长满了荷叶和荷花,里面还有两只青蛙。 荷叶 荷花 青蛙组成的,请问寓意是什么? 俄罗斯这个国家有什么特点 比如我收到一张个体工商户给开的现金支票,(这是否属于个人支票呢? )日期是2015.01.15, 皮脂腺囊肿会不会癌变? 什么叫囊肿这个病严重吗 俄罗斯这个国家,为什么在国际社会上很被孤立 离心式清水泵d155-30*6吸力有多大 这个俄罗斯人是谁? D155-30X5和155-67有什么区别? 俄罗斯这个国家的问题? 离心泵怎么命名,牌号代表了什么 春节期间支票的有效时间可不可以向后延后 俄罗斯有多强? df155-30*7多级离心泵排水量怎么计算 春节期间转账支票延期吗 这是俄罗斯的什么地方!? 图纸交换 过年前一天的支票转账什么时候可以取 请问这个俄罗斯哪里 有一张现金支票,今天不取就过期了,因为是过年,去银行取却告知没钱,请问我可不可以去银行总行取? 你好,请问你有什么好的期货指标吗?