ORACLE - <一战通> - 内置函数

2023-11-03 02:50
文章标签 oracle 函数 内置 一战

本文主要是介绍ORACLE - <一战通> - 内置函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 

ORACLE内置函数

一,数值型函数

1,绝对值,取余,判断数值正反函数

1)ADS(n)

2)MOD(n2,n1)

3)SIGN(n)

2,三角函数

1)三角函数

2)反三角函数

3,指定数值为准整数函数

1)CEIL(n)

2)FLOOR(n)

4,指数,对数函数

1)SQRT(n)

2)POWER(n2,n1)

3)LOG(n1,n2)

4)LN(n)

5,四舍五入截取函数

1)ROUND(n,int)

2)TRUNC(n,int)

二,字符型函数

1,ASCII码与字符转换函数

1)CHR(N[USING NCHAR_CS])

2)ASCII(CHAR)

2,获取字符串长度函数

1)LENGTH(char)

3,字符串截取函数

1)SUBSTR(char,position[,substring_length])

4,字符串连接函数

1)CONCAT(char1,char2)和 ||

5,字符串搜索函数

1)INSTR(string,substring[,position[,occurrence]])

6,字符大小学转换函数

1)UPPER(char)

2)LOWER(char)

3)INITCAP(char)

4)NLS_INITCAP(char[,nlsparam])

7,为指定参数排序函数

1)NLSSORT(char[,nlsparam])

8,替换字符串函数

1)REPLACE(char,search_string[,replacement_string])

9,字符串填充函数

1)RPAD(expr1,n[,expr2])

2)LPAD(expr1,n[,expr2])

10,删除字符串首位指定字符函数

1)TRIM([LEADING|TRAILING|BOTH][delstr from]str_source)

2)RTRIM(char[,set])

3)LTRIM(char[,set])

11,删除字符串首位指定字符函数

1)NLS_CHARSET_ID(str)

2)NLS_CHARSET_NAME(number)

三,日期型函数

1,系统日期,时间函数

1)SYSDATE

2)SYSTIMESTAMP

2,得到数据库时区函数

1)DBTIMEZONE

3,得到数据库时区函数

1)ADD_MONTHS(data,integer)

2)SESSIONTIMEZONE 

4,返回指定月份最后一天

1)LAST_DAY

5,返回指定日期后一周的日期

1)NEXT_DAY(date,char)

6,返回会话所在时区当前日期函数

1)CURRENT_DATE 

7,提取指定日期待定部分的函数

1)EXTRACT(datetime)

8,得到两个日期之间的月份数

1)MONTHS_BETWEEN(date1,date2)

9,时区时间转换函数

1)NEW_TIME(date,timezone1,timezone2)

10,日期四舍五入,截取函数

1)ROUND(date[,fmt])

2)TRUNC(date[,fmt])

四,转换函数

1,字符串转ASCII类型字符串函数

1)ASCIISTR(char)

2,二进制转十进制

1)BIN_TO_NUM(data[,data])

3,数据类型转换函数

1)CAST(expr as type_name)

4,字符串和ROWID相互转换函数

1)CHARTOROWID(char)

2)ROWIDTOCHAR(rowid) 和ROWIDTONCHAR(rowid)

5,字符串在字符集间转换函数

1)CONVER(char,dest_char_sest[,source_char_set])

6,十六进制字符串与RAW类型相互转换

1)HEXTORAW(char)

2)RAWTOHEX(raw)

3)RAWTONHEX(raw)

7,数值转换成字符型函数

1)TO_CAHR(n[,fmt[,nlsparam]])

2)TO_CHAR(date[,fmt[,nlsparam]])

8,字符转日期

1)TO_DATE(char[,fmt[],nlsparam])

9,字符转数字

1)TO_NUMBER(expr[,fmt[,nlsparam]])

五,NULL函数

1,返回表达式为NULL的函数

1)COALESCE(expr)

2,排除指定条件函数

1)LNNVL(condition)

3,替换NULL值函数

1)NVL(expr1,expr2)

2)NVL2(expr1,expr2,expr3)

六,集合函数

1,AVG([distinct | all] expr)                         求平均值

2,COUNT([distinct | all] expr)                    求记录数量

3,MAX([distinct | all] expr)                         求最大值

4,MIN ([distinct | all] expr)                         求最小值

5,SUM ([distinct | all] expr)                        求和

七,其他函数

1,返回登录名   USER

2,返回会话信息   USERENV

3,返回会话信息   SYS_CONTEXT

4,表达式匹配函数   

1)DECODE(expr,search,result[,search1,result1][,default])


 

ORACLE内置函数

 ORACLE有多重内置函数,使用频率最高的是单行函数和集合函数。

单行函数是指当查询表或视图时每行都能返回一个结果,可用于SELECT,WHERE,ORDER BY 等于字句中。而集合函数是作用在多行记录上返回一个结果,可用于带GROUP BY或HAVING子句的查询中。

单行函数数量较多,常用的分别是数值型函数,字符型函数,日期型函数,转换函数等。

一,数值型函数

数值类型函数可以输入数字,并返回一个数值,大多数可以达到小数点后38位,一部分则支持30位或36位小数。

1,绝对值,取余,判断数值正反函数

1)ADS(n)

用于返回绝对值参数类型为数值型,参数为数值或可以隐式转换数值的类型。

2)MOD(n2,n1)

表示返回n2除以n1的余数。参数为任意数值或可以隐式转换数值的类型。

3)SIGN(n)

返回参数n的符号。正数返回1,0返回0,负数返回-1。但如果n为BINARY_FLOAT或BINARY_DOUBLE类型时,n>=0或者n=NaN返回1。

select * from 
(SELECT ABS(100) ,ABS(-100) ,ABS('100')   FROM DUAL),
(SELECT MOD(8/3,2) ,MOD(-5,2) ,MOD(5,0)  FROM DUAL),
(SELECT SIGN(9),SIGN(0.00),SIGN(-5*'2') FROM DUAL)

 

2,三角函数


1)三角函数

SIN(n) --返回以弧度表示的角的正弦
COS(n) --返回以弧度表示的角的余弦
TAN(n) --返回以弧度表示的角的正切
COT(n) --返回以弧度表示的角的余切

2)反三角函数

ASIN(n) --返回正弦是FLOAT 值的以弧度表示的角
ACOS(n) --返回余弦是FLOAT 值的以弧度表示的角
ATAN(n) --返回正切是FLOAT 值的以弧度表示的角
ATAN2(n1,n2) --返回正切是n1 /n2的以弧度表示的角
DEGREES(n)--把弧度转换为角度返回与表达式相同的数据类型可为 --INTEGER/MONEY/REAL/FLOAT 类型
RADIANS(n) --把角度转换为弧度返回与表达式相同的数据类型可为 --INTEGER/MONEY/REAL/FLOAT 类型
EXP(n)  --返回表达式的指数值

 

3,指定数值为准整数函数

 

1)CEIL(n)

返回结果是大于等于输入参数的最小整数。十进制数值类型或可以隐式转换数值的类型,可以使非整数。

2)FLOOR(n)

返回结果是小于等于参数的最大整数。十进制数值类型或可以隐式转换数值的类型,可以使非整数。


select * from 
(SELECT CEIL(10) ,CEIL(-10) ,CEIL('10.5')   FROM DUAL),
(SELECT FLOOR(10) ,FLOOR(-10) ,FLOOR('10.5') FROM DUAL)

 

 

4,指数,对数函数

 

1)SQRT(n)

返回n的平方根。n为数字类型的时候不能为负数,将返回一个实数。但如果n为BINARY_FLOAT或BINARY_DOUBLE类型时,n<0返回NaN。

2)POWER(n2,n1)

返回n2的n1次幂的结果。这两个参数为任意数值,但如果n2为负数,那么n1必须为整数。

3)LOG(n1,n2)

返回n1为底n2的对数,n1是除1和0以外的任意正数。n2为正数。

4)LN(n)

返回n的自然数。n要求大于0

 

SELECT * FROM 
(SELECT SQRT(10)    ,SQRT('53.9')   ,SQRT(25)    FROM DUAL),
(SELECT POWER(5.5,2),POWER(5.5,2.5) ,POWER(-5,2) FROM DUAL),
(SELECT LOG(10,100) ,LOG(10.5,'100'),LN(5)       FROM DUAL);

 

5,四舍五入截取函数

 

1)ROUND(n,int)

数值n四舍五入成第二个参数指定形式的十进制数。int要求是正数,如果不是正式,那么它将被截取为整数。当int为正整数时,表示n被四舍五入为int位小数。如果该参数为负数,则n被四舍五入致小数点向左integer位。

2)TRUNC(n,int)

数值n根据integer的值进行截取,截取时和int的正负有关。参数int要求是整数,如果不是整数,那么它将被自动截取为整数部分。当int为正整数时,表示n将截取到int位小数;如果int为负数,则截取到小数点左int位,被攫取的部分用0代替。

 

SELECT * FROM 
(SELECT ROUND(55.15),ROUND(55.15,1.2),ROUND(55.15,1.8),ROUND(55.15,-2)    FROM DUAL),
(SELECT TRUNC(55.15),TRUNC(55.15,1.2),TRUNC(55.15,1.8),TRUNC(55.15,-1)    FROM DUAL)

 

二,字符型函数

函数除了CHR外接受的是字符类型的参数,大部分返回的是字符类型数据,小部分返回数字类型数据。

 

1,ASCII码与字符转换函数

 

1)CHR(N[USING NCHAR_CS])

根据相应的字符集,吧给定的ASCII码转换为字符。[USING NCHAR_CS]知名字符集。

2)ASCII(CHAR)

返回参数首字符的ASCII码值,与CHR函数相反。参数类型char的类型可以是CHAR,VARCHAR2,VCHAR或NVARCHAR2。该返回值总是以用户使用的字符集为基础的。

SELECT ASCII('Ab') , CHR(65) ,ASCII('名想') , CHR(50171) FROM  DUAL

                 

2,获取字符串长度函数

 

1)LENGTH(char)

返回指定字符串的长度,返回类型时数字

SELECT LENGTH('大神') FROM  DUAL

 

3,字符串截取函数

1)SUBSTR(char,position[,substring_length])

该函数提供截取字符串的功能。char字符串,position要截取字符串的开始位置,substring_length截取长度。

SELECT SUBSTR('12345',2),SUBSTR('12345',2,3) FROM  DUAL

 

4,字符串连接函数

1)CONCAT(char1,char2)和 ||

CONCAT是把两个参数连接并返回,char2连接到char1的尾部。效果和连接符‘||’相似。

SELECT CONCAT('12','34'),'12'||'34' FROM  DUAL

 

5,字符串搜索函数

1)INSTR(string,substring[,position[,occurrence]])

可以让我们在指定的支付穿中搜索是否存在另一个字符串。

 

6,字符大小学转换函数

1)UPPER(char)

返回全部大写字母的字符串

2)LOWER(char)

返回全部小写字母的字符串

3)INITCAP(char)

所有单词首字符转换成大写字母

SELECT UPPER('my name'),LOWER(UPPER('my name')),INITCAP('my name')  FROM  DUAL

 

4)NLS_INITCAP(char[,nlsparam])

指定参数的第一个字母转换成大写。nlsparam可选参数,其设置可以到 NLS_DATABASE_PARAMETERS表中查询。如果没有和这个参数和INITCAP函数一样。

SELECT NLS_INITCAP('a test'),NLS_INITCAP('my test','NLS_SORT = SCHINESE_STROKE_M')   FROM  DUAL

 

7,为指定参数排序函数

 

1)NLSSORT(char[,nlsparam])

根据nlsparam指定方式对char进行排序,'NLS_SORT = SCHINESE_STROKE_M'表示按拼音排序

select *  from aa_text;
select *  from aa_text order by NLSSORT(text,'NLS_SORT = SCHINESE_STROKE_M')

 

8,替换字符串函数

1)REPLACE(char,search_string[,replacement_string])

指定一个替换字符串的函数,三个参数的详情分别是:

char:表示搜索的目标字符串

search_string:在目标字符串中要搜索的字符串

replacement_string:该参数可选,用它可替代被搜索列的字符串,如果该参数不用,则表示从char参数中删除search_string字符串

 

实例

select REPLACE('jin  tian   beiJing da bao yu ', 'da bao yu ',' mei xia yu ' ) from dual

 

9,字符串填充函数

1)RPAD(expr1,n[,expr2])

在字符串expr1的右边用expr2字符串填充,知道整个字符串长度为n时为止,如果expr2不存在,则以空格填充。

2)LPAD(expr1,n[,expr2])

在字符串expr1的左边用expr2字符串填充,知道整个字符串长度为n时为止,如果expr2不存在,则以空格填充。

select RPAD('12',6,'R1R' ),RPAD('12',6),RPAD('12',5,'R1R' ),LPAD('12',6,'l1l' ),LPAD('12',6),LPAD('12',5,'l1l' ) from dual

10,删除字符串首位指定字符函数

 

1)TRIM([LEADING|TRAILING|BOTH][delstr from]str_source)

删除指定的前缀或后缀字符,默认删除空格

LEADING:删除str_source的前缀字符

TRAILING:删除str_source的后缀字符

BOTH:删除str_source的前缀和后缀字符

delstr:删除指定字符,默认空格

str_source:被操作的字符串

 

2)RTRIM(char[,set])

将char右边出的在set中的字符删除,没有set默认删除空格


3)LTRIM(char[,set])

将char左边出的在set中的字符删除,没有set默认删除空格

select TRIM(LEADING 't' from 'test') LEADING,TRIM(TRAILING 't' from 'test') TRAILING,
TRIM(BOTH 't' from 'test') BOTH,RTRIM('test','t') RTRIM,LTRIM('test','t') LTRIM  from dual;

 

11,删除字符串首位指定字符函数

 

1)NLS_CHARSET_ID(str)

根据字符集ID得到对应名称

2)NLS_CHARSET_NAME(number)

根据字符集ID得到对应的名称


select  NLS_CHARSET_ID('US7ASCII') , NLS_CHARSET_NAME('1') from dual

     

 

三,日期型函数

日期类型的函数操作日期,时间类型的相关数据,并返回日期或数字类型的数据。

1,系统日期,时间函数

1)SYSDATE

或得当前日期

2)SYSTIMESTAMP

返回系统时间,该时间包含时区信息,精确到微妙

select  SYSDATE,SYSTIMESTAMP from dual

 

2,得到数据库时区函数

1)DBTIMEZONE

返回数据库时区

select  DBTIMEZONE from dual

3,得到数据库时区函数

1)ADD_MONTHS(data,integer)

为日期格式添加一个月的时间

data:指定日期

integer:需要加的月份数,负的表示减去

2)SESSIONTIMEZONE 

返回当前会话的时区

select  ADD_MONTHS(to_date('2020-02-29','yyyy-mm-dd'),1) ,
ADD_MONTHS(to_date('2020-02-29','yyyy-mm-dd'),0),
ADD_MONTHS(to_date('2020-02-29','yyyy-mm-dd'),-2),
SESSIONTIMEZONE from dual;

4,返回指定月份最后一天

1)LAST_DAY

返回对应日期的最后一天

select LAST_DAY(sysdate) from dual

5,返回指定日期后一周的日期

1)NEXT_DAY(date,char)

返回当前日期向后一周char对应的日期,char表示是星期几

select NEXT_DAY(sysdate,'星期一') from dual

 

6,返回会话所在时区当前日期函数

1)CURRENT_DATE 

select  SESSIONTIMEZONE,to_char(CURRENT_DATE,'YYYY-MM-DD HH24:MI:SS') from dual

 

7,提取指定日期待定部分的函数

1)EXTRACT(datetime)

提取指定日期中的年,月,分

select extract(year from systimestamp) year
,extract(month from systimestamp) month
,extract(day from systimestamp) day
,extract(minute from systimestamp) minute
,extract(second from systimestamp) second
,extract(timezone_hour from systimestamp) th
,extract(timezone_minute from systimestamp) tm
,extract(timezone_region from systimestamp) tr
,extract(timezone_abbr from systimestamp) ta
from dual

 

8,得到两个日期之间的月份数

1)MONTHS_BETWEEN(date1,date2)

返回日期之间的月份数,两个参数都是日期型数据。当date1>date2时,返回正数,反之,返回负数。

select 
MONTHS_BETWEEN(TO_DATE('2020-09-12','YYYY-MM-DD'),TO_DATE('2020-08-12','YYYY-MM-DD')) DATE1,
MONTHS_BETWEEN(TO_DATE('2020-09-10','YYYY-MM-DD'),TO_DATE('2020-08-12','YYYY-MM-DD')) DATE2,
MONTHS_BETWEEN(TO_DATE('2020-07-12','YYYY-MM-DD'),TO_DATE('2020-08-12','YYYY-MM-DD')) DATE3,
MONTHS_BETWEEN(TO_DATE('2020-07-10','YYYY-MM-DD'),TO_DATE('2020-08-12','YYYY-MM-DD')) DATE4
from dual

 

9,时区时间转换函数

1)NEW_TIME(date,timezone1,timezone2)

返回date在时区timezone1转换到timezone2时区的时间。

【参数】:timezone1,timezone2对应的 时区及其简写  

  大西洋标准时间:AST或ADT  

  阿拉斯加_夏威夷时间:HST或HDT  

  英国夏令时:BST或BDT  

  美国山区时间:MST或MDT  

  美国中央时区:CST或CDT  

  新大陆标准时间:NST  

  美国东部时间:EST或EDT  

  太平洋标准时间:PST或PDT  

  格林威治标准时间:GMT  

  Yukou标准时间:YST或YDT


select 
TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') ONE,
TO_CHAR(NEW_TIME(SYSDATE,'PDT','EST'),'YYYY-MM-DD HH24:MI:SS') TWO
from dual

 

10,日期四舍五入,截取函数

1)ROUND(date[,fmt])

将date舍入到fmt指定形式,如果参数fmt被省略,则date被助理到最近的一天

select 
TO_CHAR(ROUND(TO_DATE('2020-08-01 17:00:00','YYYY-MM-DD HH24:MI:SS'))) DATE1
,TO_CHAR(ROUND(TO_DATE('2020-08-01 17:00:00','YYYY-MM-DD HH24:MI:SS')),'YYYY-MM-DD HH24:MI:SS') DATE2
from dual

 

2)TRUNC(date[,fmt])

将date截取到fmt指定形式,如果参数fmt被省略,则date被助理到最近的一天

select 
TO_CHAR(TRUNC(TO_DATE('2020-08-01 17:00:00','YYYY-MM-DD HH24:MI:SS'))) DATE1
,TO_CHAR(TRUNC(TO_DATE('2020-08-01 17:00:00','YYYY-MM-DD HH24:MI:SS')),'YYYY-MM-DD HH24:MI:SS') DATE2
from dual

 

四,转换函数

 

用于不同数据类型之间的转换

1,字符串转ASCII类型字符串函数

 

1)ASCIISTR(char)

将任意字符集的字符串转换为数据库字符集对应的ASCII字符串
SELECT  ASCIISTR() FROM DUAL

 

2,二进制转十进制

1)BIN_TO_NUM(data[,data])

把二进制转换成对应的十进制,一位用‘,’隔开

SELECT BIN_TO_NUM(1) "1" ,BIN_TO_NUM(1,1) "3" ,BIN_TO_NUM(1,0) "2" FROM DUAL;

 

3,数据类型转换函数

1)CAST(expr as type_name)

把expr参数转成type_name类型。基本用语数字与字符之间以及字符与日期类型之间的转换

SELECT CAST('123' AS INTEGER) VAR_TO_INT,
CAST(123 AS VARCHAR2(8))NUM_TO_VAR,
CAST(SYSDATE AS VARCHAR2(12))DATE_TO_VAR  FROM DUAL;

 

4,字符串和ROWID相互转换函数

1)CHARTOROWID(char)

将字符串类型转换成ROWID类型。char:CHAR,VARCHAR2,NCHAR,NVARCHAR2,长度为18

SELECT CHARTOROWID('ABcDEFGHIJKLMNUVWS')  FROM DUAL;

2)ROWIDTOCHAR(rowid) 和ROWIDTONCHAR(rowid)

与CHARTOROWID相反,都是把rowid转换成字符串。但ROWIDTONCHAR返回类型时NVARCHAR2

SELECT CHARTOROWID('ABcDEFGHIJKLMNUVWS')CHARTOROWID,ROWIDTOCHAR('ABcDEFGHIJKLMNUVWS')ROWIDTOCHAR,ROWIDTONCHAR('ABcDEFGHIJKLMNUVWS')ROWIDTONCHAR FROM DUAL;

 

5,字符串在字符集间转换函数

1)CONVER(char,dest_char_sest[,source_char_set])

把字符串从一个字符集转换到另一个字符集。

char:CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB

dest_char_sest转换后的字符集

source_char_set:原字符集,默认数据库实例字符集

ZHS16GBK表示采用GBK编码格式、16位(两个字节)简体中文字符集 
WE8ISO8859P1(西欧、8位、ISO标准8859P1编码)

AL32UTF8(其中AL代表ALL,指适用于所有语言)

SELECT CONVERT('sdfasr2q2fq3发生','ZHS16GBK')t1,
CONVERT('sdfasr2q2fq3发生','WE8ISO8859P1')t2,
CONVERT('sdfasr2q2fq3发生','AL32UTF8')t3,
CONVERT('sdfasr2q2fq3鍙戠敓','ZHS16GBK','AL32UTF8')t4 FROM DUAL;

6,十六进制字符串与RAW类型相互转换

 

1)HEXTORAW(char)

把十六进制的支付穿转换成raw类型的数据

2)RAWTOHEX(raw)

把raw类型表示成一个由十六进制字符表示的串,返回VARCHAR2类型

3)RAWTONHEX(raw)

与RAWTOHEX一样,但返回NVARCHAR2类型

 

SELECT HEXTORAW('4D')t1 ,RAWTOHEX('4D')t2,RAWTONHEX('4D')t3 FROM DUAL;

 

7,数值转换成字符型函数

1)TO_CAHR(n[,fmt[,nlsparam]])

     把数值型参数转成字符串数据,n数值型数据;fmt要转成字符的格式;nlsparam指定方面它的特征

2)TO_CHAR(date[,fmt[,nlsparam]])

把日期型数据转成一个字符型数据。date日期型数据;fmt要转成字符的格式;nlsparam使用的语言类型

 

SELECT 
TO_CHAR(16.88,'99.9')T1,
TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS')T2,
TO_CHAR(sysdate,'Month','NLS_DATE_LANGUAGE=ENGLISH')T3
FROM DUAL;

 

8,字符转日期

 

1)TO_DATE(char[,fmt[],nlsparam])

把字符型数据转换成日期型数据,char字符型数据;fmt要转成的格式;nlsparam使用的语言类型

SELECT TO_CHAR(TO_DATE('2010-7-1','YYYY-MM-DD'),'Month')T1 FROM DUAL;

 

9,字符转数字

把字符串转成数字

1)TO_NUMBER(expr[,fmt[,nlsparam]])

SELECT TO_NUMBER('123.456','999.999')T1, TO_NUMBER('123.456')T2 FROM DUAL;

 

 

五,NULL函数

NULL函数是用来处理控制时使用的

1,返回表达式为NULL的函数

1)COALESCE(expr)

返回一个部位Null的表达式,如果为空则返回null

SELECT COALESCE(NULL,9-9,NULL)T1,COALESCE(NULL,NULL,NULL)T2 FROM DUAL;

 

2,排除指定条件函数

1)LNNVL(condition)

得到condition条件之外的数据,包括null值。取反例

SELECT *  FROM (SELECT null T1  FROM DUALunionSELECT 1 T1  FROM DUALunionSELECT 3 T1 FROM DUAL)
WHERE LNNVL(T1 >= 2)

 

3,替换NULL值函数

 

1)NVL(expr1,expr2)

如果expr1为NULL值,则返回expr2,否则返回expr1。 expr1==NULL?expr2:expr1

2)NVL2(expr1,expr2,expr3)

如果expr1为NULL值,则返回expr3,否则返回expr2。 expr1==NULL?expr3:expr2

SELECT 
NVL('expr1','expr2')T1,NVL(NULL,'expr2')T2 ,
NVL2(NULL,'expr2','expr3')T3,NVL2('expr1','expr2','expr3')T4
FROM DUAL;

 

六,集合函数

集合函数经常配合GROUP BY 和HAVING子句使用,也可以单独使用,除了COUNT外都会忽略列的NULL值

1,AVG([distinct | all] expr)                         求平均值

2,COUNT([distinct | all] expr)                    求记录数量

3,MAX([distinct | all] expr)                         求最大值

4,MIN ([distinct | all] expr)                         求最小值

5,SUM ([distinct | all] expr)                        求和

 

distinct :表示去除重复记录

all:代表所有的,是默认选项

expr:表示列

 

SELECT AVG(T1)AVG1, AVG(distinct T1)AVG2, 
COUNT(T1)COUNT1,COUNT(*)COUNT2, COUNT(distinct T1)COUNT3, 
MAX(T1)MAX1, MAX(distinct T1)MAX2, 
MIN(T1)MIN1, MIN(distinct T1)MIN2, 
SUM(T1)SUM1, SUM(distinct T1)SUM2
FROM (SELECT null T1  FROM DUALunionSELECT 1 T1  FROM DUALunionSELECT 2 T1 FROM DUALunionSELECT 3 T1 FROM DUALunionSELECT 3 T1 FROM DUAL)

 

 

 

七,其他函数

 

1,返回登录名   USER

返回当前会话的登录名

2,返回会话信息   USERENV

返回当前会话信息,

当参数是Language时返回当前会话的语言,字符集等

当参数是SESSIONID时返回当前会话ID

当参数是ISDBA时返回当前用户是否DBA

3,返回会话信息   SYS_CONTEXT

返回ORACLE用户已经创建的额context,名为USERENV的属性的对应值

SELECT USER ,USERENV('Language'),USERENV('SESSIONID'),USERENV('ISDBA'),
SYS_CONTEXT('USERENV','SESSION_USER') FROM DUAL;

 

4,表达式匹配函数   

1)DECODE(expr,search,result[,search1,result1][,default])

当expr符合条件search时返回result的值,默认返回default。search1和result1时一对一的匹配过程

SELECT  DECODE(1,1,1,0)T1,DECODE(1,2,1,0)T2,
DECODE('expr','search','result','default')T3,DECODE('expr','expr','result','default')T4  FROM DUAL

 

这篇关于ORACLE - <一战通> - 内置函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/335073

相关文章

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

Oracle Start With关键字

Oracle Start With关键字 前言 旨在记录一些Oracle使用中遇到的各种各样的问题. 同时希望能帮到和我遇到同样问题的人. Start With (树查询) 问题描述: 在数据库中, 有一种比较常见得 设计模式, 层级结构 设计模式, 具体到 Oracle table中, 字段特点如下: ID, DSC, PID; 三个字段, 分别表示 当前标识的 ID(主键), DSC 当

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使用了由[90]描述的第一个算法。开发者应该注意,由于数据点靠近包含的 Mat 元素的边界,返回的椭圆/旋转矩形数据

oracle分页和mysql分页

mysql 分页 --查前5 数据select * from table_name limit 0,5 select * from table_name limit 5 --limit关键字的用法:LIMIT [offset,] rows--offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。   oracle 分页 --查前1-9

Unity3D 运动之Move函数和translate

CharacterController.Move 移动 function Move (motion : Vector3) : CollisionFlags Description描述 A more complex move function taking absolute movement deltas. 一个更加复杂的运动函数,每次都绝对运动。 Attempts to