SQL函数简述

数字函数
ABS 取绝对值
POWER 乘方
LN 10为底数取幂
SQRT 平方根
EXP e的n次乘方
LOG(m,n) m为底数n取幂
数学运算函数:ACOS ATAN ATAN2 COS COSH SIGN SIN SINH TAN TANH
CEIL 大于或等于取整数
FLOOR 小于或等于取整数
MOD 取余数
ROUND(n,m) 按m的位数取四舍五入值如果round(日期): 中午12以后将是明天的日期. round(sysdate,‘Y‘)是年的第一天
TRUNC(n,m) 按m的位数取前面的数值如果trunc(日期), 确省的是去掉时间
字符函数
CHR 按数据库的字符集由数字返回字符
CONCAT(c1,c2) 把两个字符c1,c2组合成一个字符, 和 || 相同
REPLACE(c,s,r) 把字符c里出现s的字符替换成r, 返回新字符
SUBSTR(c,m,n) m大于0,字符c从前面m处开始取n位字符,m等于0和1一样, m小与0,字符c从后面m处开始取n位字符

TRANSLATE(c,f1,t1) 字符c按f1到t1的规则转换成新的字符串
INITCAP 字符首字母大写,其它字符小写
LOWER 字符全部小写
UPPER 字符全部大写
LTRIM(c1,c2) 去掉字符c1左边出现的字符c2
RTRIM(c1,c2) 去掉字符c1右边出现的字符c2
TRIM(c1,c2) 去掉字符c1左右两边的字符c2
LPAD(c1,n,c2) 字符c1按指定的位数n显示,不足的位数用c2字符串替换左边的空位
RPAD(c1,n,c2) 字符c1按指定的位数n显示,不足的位数用c2字符串替换右边的空位
提示:去掉字符串中间的空格可以使用replace
日期函数
ADD_MONTHS(d,n) 日期值加n月
LAST_DAY(d) 返回当月的最后一天的日期
MONTHS_BETWEEN(d1,d2) 两个日期值间的月份
NEXT_DAY(d) 返回日期值下一天的日期
SYSDATE 当前的系统时间
DUAL是SYS用户下一个空表,它只有一个字段dummy
提示:dual可以理解为虚表,多在查询系统函数返回值时使用,以满足SELECT语法规则,如select sysdate from dual; select 3 + 4 from dual;
转换函数
TO_CHAR(date,‘日期显示格式‘)
TO_CHAR(number) 用于显示或报表的格式对齐
TO_DATE(char,‘日期显示格式‘)
TO_LOB 把long字段转换成lob字段
TO_NUMBER(char) 用于计算或者比较大小
日期显示格式
年: YYYY, YEAR, YY
季:Q
月: MM, MONTH, MON
日: DD, DAY, DY
时: HH24, HH12, HH(12小时)
分: MI
秒: SS
逻辑比较函数
NVL(EXPR1, EXPR2)
当EXPR1为空用EXPR2替代
DECODE(EXPR﹐V1﹐R1﹐V2﹐R2....)
当EXPR=V1时返回R1
当EXPR=V2是放回V2…
EXPR后条件和返回值成对出现,最后一个单值是不在条件中的返回值,如果没有单值,不满足条件的返回NULL。
SELECT ENAME, DECODE(JOB, ‘MANAGER‘, ‘经理‘, ‘PRESIDENT‘, ‘总裁‘, ‘SALESMAN‘, ‘销售‘, ‘不详‘) FROM SCOTT.EMP;
CASE WHEN condition THEN express1 ELSE express2 END
当condition成立返回express1否则返回express2
SELECT ENAME, HIREDATE,
(CASE WHEN TO_NUMBER(TO_CHAR(HIREDATE, ‘MM‘)) > 6 THEN ‘下半年‘ ELSE ‘上半年‘ END) AS 入职时间
FROM SCOTT.EMP;
--TO_CHAR(HIREDATE, ‘MM‘)取时间月份

时间: 2024-08-04 16:02:09

SQL函数简述的相关文章

SQL函数说明大全

一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下表给出了T-SQL函数的类别和描述. 函数类别 作用 聚合函数 执行的操作是将多个值合并为一个值.例如 COUNT.SUM.MIN 和 MAX. 配置函数 是一种标量函数,可返回有关配置设置的信息. 转换函数 将值从一种数据类型转换为另一种. 加密函数 支持加密.解密.数字签名和数字签名验证. 游标函数 返回有关游标状态的信息.

Oracle 11g 的PL/SQL函数结果缓存

模仿Oracle性能诊断艺术中的例子做了两个试验,书上说如果不用RELIES_ON,则函数依赖的对象发生的变更操作就不会导致结果缓存的失效操作(result_cache RELIES_ON(test1,test2)),试验证明不对,函数f1()并没有使用RELIES_ON,但表上的变化影响到了函数. C:\Documents and Settings\guogang>sqlplus gg_test/[email protected]_gg SQL*Plus: Release 10.2.0.1.0

Oracle之SQL函数

1.SQL函数(1)字符函数:主要是操纵字符串(2)数字函数:主要是操纵数字类型的数值(3)转换函数:这些函数将数据从一种数据类型转换为另一种数据类型(4)日期函数:处理日期和时间(5)正则表达式函数:这些函数使用正则表达式搜索数据2.字符函数 (1)CONCAT(m,n) 将m和n连接起来,并返回连接后的字符串 (2)INITCAP(n) 将n中的第一个字母转换成大写 (3)INSTR(x,y,m,n) 在x中查找字符串y出现的位置.其中m,n是可选项,m代表从字符串x的第m个位置开始查找.n

SQL函数

1.内建SQL函数的[语法]: select  function(列)  from  表 [自带函数]: 1.avg函数:返回数值的平均值.null值不包括. select  avg(列名)  from  表名 2.count函数:返回匹配指定条件得行数  count(列名):返回指定列的值的数目(null不计入) select  count(列名) from  表名 count(*):返回表中的记录数 count(distinct  列名):返回指定列的不同值的数目 3.first函数:返回指

计算地球上两个坐标点(经度,纬度)之间距离sql函数

go --计算地球上两个坐标点(经度,纬度)之间距离sql函数 --作者:lordbaby --整理:www.aspbc.com CREATE FUNCTION [dbo].[fnGetDistance](@LatBegin REAL, @LngBegin REAL, @LatEnd REAL, @LngEnd REAL) RETURNS FLOAT AS BEGIN --距离(千米) DECLARE @Distance REAL DECLARE @EARTH_RADIUS REAL SET @

Oracle数据类型,DDL、DML、DCL、TCL语言,SQL操作符,SQL函数

SQL查询与SQL函数 本章目标 了解Oracle数据类型  了解数据定义语言和数据操纵语言  了解事务控制语言和数据控制语言  掌握SQL操作符和SQL函数  SQL(structured query language)--结构化查询语言   通过SQL可以实现与Oracle服务器的通信   SQL是数据库语言,Oracle使用该语言存储和检索信息       表是主要的数据库对象,用于存储数据 用户  --------------------发送SQL语句查询----------------

Oracle 中的sql函数以及分页

SELECT LPAD('Page 1',15,'*.') "LPAD example" FROM DUAL; 1.分页查询 (1)方法一:使用  between  and 来实现分页 select * from ( select emp.*,rownum rn from emp ) where rn between 4 and 6 (2)方法二:使用 rownum 来实现分页 select * from ( select emp.*,rownum rn from emp where

SQL函数——LENGTH()和LENGTHB()

LENGTH()函数是比较简单同时也是非常有用的一个函数,在此小记一下,加深印象以备后用! 1:先上实验的例子--我新建了一张Student表,插入了若干条测试数据,如下图所示: 2:实验LENGTH()函数 3:实验LENGTHB()函数 解释一:此处的LENGTH()函数用于获取对应字段的字符长度 解释二:此处的LENGTHB()函数用于获取对应字段的字节长度 解释三:ORACLE安装好后默认的NLS_DATE_FORMAT参数值为DD-MON-RR OK,上面的两个函数和对应的实验结果已做

常用的sql函数

常用的sql函数 concat('hello','world') 结果:helloworld  作用:拼接 substr('helloworld',1,5)      hello                  截取(前后下标都包括) substring('helloworld',1,5)       hell                    截取(前包括后不包括) length('edtrfytg hjpjiuy')         16                     获取字