SQL内置函数说明
2016-03-17 09:56
295 查看
一般地,日期格式说明符是不太敏感的。然而,当为了显示而说明日期格式、对于文本数据中的说明符等情况下,它就变得比较务实、具体了。以月份的名字为例,通过下面引用的结果解释一下该情况的效果:
TO_CHAR(SYSDATE,’MONTH’)=NOVEMBER
TO_CHAR(SYSDATE,’Month’)=November
TO_CHAR(SYSDATE,’month’)=november
当你键入的单词MONTH(月份)是大写字母时,月份名字的结果就全部说明为大写。否则,如果串说明时的首字母是大写,则返回的月份名首字母也是大写字母。同样的规则也适用于下面的格式说明符:AD、AM、PM、BC、DAY、DY、MON、RM和YEAR
SQL内置函数
ABS
ABS函数返回一数值的绝对值。负数将舍去其负号。下面是它的语法格式:
ABS(number)
其中,number是希望得到其绝对值的数值
ABS函数截去数值的符号。如下例所示:
ABS(5)=5
ABS(5)=5
不管是5还是-5,其绝对值均为5。
SQL内置函数
ACOS
ACOS函数返回一数值的反余弦值。结果以弧度表示,且在0到PI之间。
其语法格式如下:
ACOS(number)
其中,number必须是-1与1之间的值
下面的例子显示了1和-1 的反余弦值:
ACOS(1)=0
ACOS(-1)=3.1415927(PI)
SQL内置函数
ADD_MONTHS
ADD_MONTHS函数将一个日期上加上一指定的月份数,所以,日期中的日将是不变的。然而,如果开始日期是某月的最后一天,那么,结果将会调整以使返回值仍对应新的一月的最后一天。如果,结果月份的天数比开始月份的天数少,那么,也会向回调整以适应有效日期。其语法格式如下:
ADD_MONTHS(date,months)
其中:
date 一个日期数值
months 要加上的月份数。要减去的月份数用负数
下面的例子解释了该函数的使用:
ADD_MONTHS(TO_DATE(’15-Nov-1961’,’d-mon-yyyy’),1) =’15-Dec-1961
ADD_MONTHS(TO_DATE(’30-Nov-1961’,’d-mon-yyyy’),1) =’31-Dec-1961
ADD_MONTHS(TO_DATE(’31-Jan-1999’,’d-mon-yyyy’),1) =’28-Feb-1999
注意,在上面的第三个例子中,函数将不得不将31日往回调整为28日,已使结果对应新一月的最后一天。因为,1999年的2月份只有28天。在第二个例子中,则是从30往后调整为31,也同样是为了保持对应的最后一天。
SQL内置函数
ASCII
ASCII函数返回你指向的字符串首字母的十进制表示代表码值。该返回值或许是ASCII码值,也或许不是。如果用户的数据库字符集是7位的ASCII值,那就得到一ASCII码值。该返回值总是以用户使用的字符集为基础的。
ASCII(string)
其中:string一个字符串。更多的时候就是一字符
下面的例子解释了该函数的使用:
ASCII(‘j’)=74
ASCII(‘jeff’)=74
从上面的第二个例子,我们不难看出,如果指定了一个多字符串,该函数将忽略除首字母外的所有字符。
SQL内置函数
ASIN
ASIN函数返回一数值的反正弦值。结果以弧度表示,且在-PI/2到PI/2之间。
其语法格式如下:
ASIN(number)
其中:number必须是-1与1之间的值
下面的例子显示了1和-1的反正弦值:
ASIN(1)=1.57
ASIN(-1)=-1.57
SQL内置函数
ATAN
ATAN函数返回一数值的反正切值。结果以弧度表示,且在-PI/2到PI/2之间。
其语法格式如下:
ATAN(number)
其中:number必须是-1与1之间的值
下面的例子显示了1和-1 的反正切值:
ATAN(1)=0.7854
ATAN(-1)=-0.7854
SQL内置函数
ATAN2
ATAN2函数返回两个数值的反正切值。结果以弧度表示。
其语法格式如下:
ATAN2(first,second)
其中:
first 第一个数
second 第二个数
函数ATAN2(first,second)与函数TAN(first/second)的功能是相同的。
下面的例子显示了1和-1的反正切值:
ATAN2(1,.5)=1.107
TAN(1/.5)=1.107
SQL内置函数
BFILENAME
BFILENAME函数返回一指向磁盘的物理文件的BFILE地址。
其语法格式如下:
BFILENAME(directory,filename)
其中:
directory 一个包括指定文件的目录路径字符串。 该目录通过命令CREATE DIRECTORY产生。 但它不是一个操作系统目录
filename 指定目录中用户试图指定的文件名字。 该文件可以是预先不存在的文件
下面的例子解释了BFILENAME函数的使用情况:
BFILENAME(‘gif_dir’,’book_photo.gif’)
SQL内置函数
CEIL
CEIL函数根据输入值返回一个数值。输入参数可以是非整数值,但返回结果则是大于等于输入参数的最小整数。
其语法格式如下:
CEIL(number)
其中:
number 任意数值,十进制数
下面的例子解释了CEIL函数的使用情况:
CEIL(5.1)=6
CEIL(-5.1)=-5
应注意,对于负数使用该函数的结果。大于等于-5。1的最小整数精确地讲应该是-5。这是数学上的情况,但首先也是记数中知觉上的感觉。
SQL内置函数
CHARTOROWID
CHARTOROWID函数将一个字符串转换成rowid类型。
其语法格式如下:
CHARTOROWID(string)
其中:
string 待处理的字符串。该字符串应该能表示一个有效的 rowid型数据
下面的例子解释了CHARTOROWID函数的使用情况:
SQL>SELECT ROWID FORM dual;
ROWID
----------
AAAADCAABAAAAVUAAA
SQL>SELECT * FORM dual
2 WHEREROWID=CHARTOROWID(‘AAAADCAABAAAAVUAAA’);
D
-
X
SQL内置函数
CHR
CHR函数就相应的数据库字符集,返回一个指定数值相应的字符。例如,给定一个ASCII值,使用CHR函数返回该数值表示的字符。
其语法格式如下:
CHR(integer[USING NCHAR_CS])
其中:
integer 在相应的字符集中,代表对应字符 的整数类型
USINGNCHAR_CS 指明相应的字符集
下面的例子解释了CHR函数的使用情况:
CHR(10)=a tab character
CHR(65)=‘A’
这些例子假设基于ASCII字符集
SQL内置函数
CONCAT
CONCAT函数将两个输入字符串,组合成一个,并返回结果。
其语法格式如下:
CONCAT(string_1,string_2)
其中:
string_1 第一个字符串
string_2 第二个字符串。该字符串将被拼接在第一 个字符串的尾部
下面的例子解释了CONCAT函数的使用情况:
CONCAT(‘This is’,’a test’)=‘This is atest’
SQL内置函数
CONVERT
CONVERT函数把一字符串从一个字符集转换到另一字符集。
其语法格式如下:
CONVERT(string,dest_char_set[,source_char_set])
其中:
string 待转换的字符串
dest_char_set 目标字符串
source_char_set 源字符集。省略默认数据库字符集
下面的例子解释了CONVERT函数的使用情况:
CONVERT(‘Jonathan’,’WE8EBDIC37C’,’US7ASCII’)
CONVERT(‘Jonathan’,’WE8ROMAN8’)
第一个例子从US7ASCII字符集转换。第二个例子从默认数据库字符集转换。
SQL内置函数
COS
COS函数返回一角度的余弦值。结果为弧度值。
其语法格式如下:
COS(angle)
其中:
angle 角度值,用弧度表示
下面的例子解释了COS函数的使用情况:
COS(90*3.14/180)=.000796
COS(0)=1
SQL内置函数
COSH
COSH函数返回一角度的双曲余弦值。
其语法格式如下:
COSH(angle)
其中:
angle 角度值,以弧度表示
下面的例子解释了COSH函数的使用情况:
COSH(0)=1
COSH(90*3.14/180)=2.507
将角度值转化成弧度值,可以参考COS函数的有关部门信息
SQL内置函数
DECODE(一)
DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值。
其具体的语法格式如下:
DECODE(input_value,value,result[,value,result…][,default_result]);
其中:
input_value 试图处理的数值。DECODE函数将该数值与一系列的序偶相比 较,以决定最后的返回结果
value 是一组成序偶的数值。如果输入数值与之匹配成功,则相应 的结果将被返回。对应一个空的返回值,可以使用关键字 NULL于之对应
result 是一组成序偶的结果值
default_result 未能与任何一序偶匹配成功时,函数返回的默认值
下面的例子说明了,人们如何读取用户CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。
SELECT checkup_type,
DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,
’Invalid’)
FROM checkup;
SQL内置函数
DECODE(二)
这个SQL语句展示了DECODE函数的左右基础功能特征。函数的输入值时BLOOD_TEST_FLAG列的数据,如果该列的值是‘Y’,那么,函数返回‘YES’。如果该列的值是NULL,那么,函数返回‘None’。如果没有与任何一个序偶匹配成功,则表示该列当前值无效,函数返回‘Invalid’。
在SQL疑难问题中,DECODE函数常常发挥非常灵活的作用。其中的一个技术就是为了某种目的可以将一个表的行转换成列。例如:
SQL>SELECTTO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’),
2 COUNT(*)
3 FROM AQUATIC_ANIMAL
4 WHERETO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’)
5 IN(‘1995’,’1996’,’1997’)
6 GROUP BYTO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’);
TO_C COUNT(*)
--- -------
1995 1
1996 3
1997 1
SQL内置函数
该例告诉我们,1995、1996和1997年各出生了多少动物。每一行显示不同的年。一旦希望将这些数值显示成3列,该如何处理?可以通过如表B-1所示的方法处理之。
SQL内置函数
EMPTY_BLOB
EMPTY_BLOB函数返回一空的BLOB指针,该指针可以用在INSERT或UPDATE命令中,以初始化BLOB列项。
其具体的语法格式如下:
EMPTY_BLOB()
该函数没有参数。下面的例子说明了如何使用该函数初始化BLOB列,并作为一个新行插入到表中。
INSERT INTO some_table
(blob_column)
VALUES(EMPTY_BLOB());
SQL内置函数
EMPTY_CLOB
EMPTY_CLOB函数与EMPTY_BLOB函数的功能类似,只不过对应CLOB而已。它返回一空的CLOB指针,该指针可以用在INSERT或UPDATE命令中,以初始化CLOB列。
其具体的语法格式如下:
EMPTY_CLOB()
该函数没有参数。下面的例子说明了如何使用该函数初始化CLOB列,并作为一个新行插入到表中。
INSERT INTO some_table
(clob_column)
VALUE(EMPTY_CLOB());
SQL内置函数
EXP
EXP函数返回e的一个幂。在数学上e经常被用来表示一指定的特殊数值(一个十进制的无限数)2.178…,它是数学的基础。其具体的语法格式如下:
EXP(exponent)
其中:
exponent 返回e的少次(exponent)幂
下面是该函数的使用情况:
EXP(1)=2.7182818
EXP(3)=20.085537(2.7182818*2.7182818*2.7182818)
SQL内置函数
FLOOR
FLOOR函数返回一个小于或等于给定十进制数的最大整数。该函数的工作机制与函数CEIL的情况极为相似,但却正好相反。
其具体的语法格式如下:
FLOOR(number)
其中:
number 任意数,包括十进制数
下面是该函数的使用情况:
FLOOR(5.1)=5
FLOOR(-5.1)=-6
为了理解函数FLOOR和函数CEIL在处理负数时的不同机制,可以比较函数FLOOR(5.1)和函数CEIL(-5.1)的执行结果。
SQL内置函数
GREATEST
GREATEST函数返回一数值列表中的最高数值。可使用GREATEST函数处理数字数据和字符数据。
其具体的语法格式如下:
GREATEST(value,value,value,…)
其中:
value 数字数据或文本数据。一般地,所有数值的类型应该一致。 如果给定的数据类型相混,返回值将匹配第一个参数类型, 其余的所有参数自然被转换成对应的类型
下面是该函数的使用情况:
GREATEST(1,3,9,45,93,2,-100)=93
GREATEST(’Jenny’,’Jeff’,’Ashley’)=’Jenny’
GREATEST(’11’,101)=‘11’
第三个例子反映了参数类型相混时的函数处理情况。因为第一的数据类型是字符串,所以,Oracle将数字1转换成字符串‘1’,以匹配对应的数据类型。虽然在数值上101大于11,但如果都转换成字符串,则结果正好相反。这种情况下,‘11’大于‘101’,并且,也是函数的返回结果。
SQL内置函数
HEXTORAW
函数HEXTORAW将一个由十六进制字符组成的字符串转换成一个raw数值。
其具体的语法格式如下:
HEXTORAW(string)
其中:
string 十六进制字符组成的字符串数据
SQL内置函数
INITCAP
INITCAP函数接收一字符串,并转换该字符串中的所有单词,以使各单词均以大写字母开头。
其的语法格式如下:
INITCAP(string)
其中:
string 任意一VARCHAR2或CHAR型数据
下面是该函数的使用情况。
INITCAP(‘This is a test’=‘This is atest’
SQL内置函数
INSTR
函数INSTR会告诉用户,其中的一个字符串(参数)是否在另一个字符串(也是参数)当中。
其具体的语法格式如下:
INSTR(string,substring[,start[,occurrence]])
其中:
string 待查询的字符串
substring 正在搜索的字符串
start 说明开始搜索的字符位置。默认值是1,就是说,搜 索将从字符串的第一个字符开始。如果,参数为负 则表示搜索的位置从右边开始计算,而不是默认的 从左边开始
occurrence 指定试图搜索的子串的第几次出现,默认值是1,意 味着希望其首次出现
该函数反馈一索引顺序值,在该位置发现了要搜索的子串。下面的例子指出了INSTR函数的使用情况:
INSTR(‘AAABAABA’,’B’)=4
INSTR(‘AAABAABA’,’B’,1,2)=7
SQL内置函数
INSTRB
该函数与INSTR的功能极为类似,也将反馈其中的一个字符串(参数)是否在另一个字符串(也是参数)当中。只是该函数返回的是一字节索引位置,而不是一字符索引位置。其实,仅仅在多个字符集同时被使用时,这种不同才有意义。
其具体的语法格式如下:
INSTRB(string,substring[,start[,occurrence]])
其中:
string 待查询的字符串
substring 正在搜索的字符串
start 说明开始搜索的字符位置。默认值是1,就是说,搜索将从字 符串的第一个字符开始。如果,参数为负则表示搜索的位置从 右边开始计算,而不是默认的从左边开始
occurrence 指定试图搜索的子串的第几次出现,默认值是1,意味着希望 其首次出现
TO_CHAR(SYSDATE,’MONTH’)=NOVEMBER
TO_CHAR(SYSDATE,’Month’)=November
TO_CHAR(SYSDATE,’month’)=november
当你键入的单词MONTH(月份)是大写字母时,月份名字的结果就全部说明为大写。否则,如果串说明时的首字母是大写,则返回的月份名首字母也是大写字母。同样的规则也适用于下面的格式说明符:AD、AM、PM、BC、DAY、DY、MON、RM和YEAR
SQL内置函数
ABS
ABS函数返回一数值的绝对值。负数将舍去其负号。下面是它的语法格式:
ABS(number)
其中,number是希望得到其绝对值的数值
ABS函数截去数值的符号。如下例所示:
ABS(5)=5
ABS(5)=5
不管是5还是-5,其绝对值均为5。
SQL内置函数
ACOS
ACOS函数返回一数值的反余弦值。结果以弧度表示,且在0到PI之间。
其语法格式如下:
ACOS(number)
其中,number必须是-1与1之间的值
下面的例子显示了1和-1 的反余弦值:
ACOS(1)=0
ACOS(-1)=3.1415927(PI)
SQL内置函数
ADD_MONTHS
ADD_MONTHS函数将一个日期上加上一指定的月份数,所以,日期中的日将是不变的。然而,如果开始日期是某月的最后一天,那么,结果将会调整以使返回值仍对应新的一月的最后一天。如果,结果月份的天数比开始月份的天数少,那么,也会向回调整以适应有效日期。其语法格式如下:
ADD_MONTHS(date,months)
其中:
date 一个日期数值
months 要加上的月份数。要减去的月份数用负数
下面的例子解释了该函数的使用:
ADD_MONTHS(TO_DATE(’15-Nov-1961’,’d-mon-yyyy’),1) =’15-Dec-1961
ADD_MONTHS(TO_DATE(’30-Nov-1961’,’d-mon-yyyy’),1) =’31-Dec-1961
ADD_MONTHS(TO_DATE(’31-Jan-1999’,’d-mon-yyyy’),1) =’28-Feb-1999
注意,在上面的第三个例子中,函数将不得不将31日往回调整为28日,已使结果对应新一月的最后一天。因为,1999年的2月份只有28天。在第二个例子中,则是从30往后调整为31,也同样是为了保持对应的最后一天。
SQL内置函数
ASCII
ASCII函数返回你指向的字符串首字母的十进制表示代表码值。该返回值或许是ASCII码值,也或许不是。如果用户的数据库字符集是7位的ASCII值,那就得到一ASCII码值。该返回值总是以用户使用的字符集为基础的。
ASCII(string)
其中:string一个字符串。更多的时候就是一字符
下面的例子解释了该函数的使用:
ASCII(‘j’)=74
ASCII(‘jeff’)=74
从上面的第二个例子,我们不难看出,如果指定了一个多字符串,该函数将忽略除首字母外的所有字符。
SQL内置函数
ASIN
ASIN函数返回一数值的反正弦值。结果以弧度表示,且在-PI/2到PI/2之间。
其语法格式如下:
ASIN(number)
其中:number必须是-1与1之间的值
下面的例子显示了1和-1的反正弦值:
ASIN(1)=1.57
ASIN(-1)=-1.57
SQL内置函数
ATAN
ATAN函数返回一数值的反正切值。结果以弧度表示,且在-PI/2到PI/2之间。
其语法格式如下:
ATAN(number)
其中:number必须是-1与1之间的值
下面的例子显示了1和-1 的反正切值:
ATAN(1)=0.7854
ATAN(-1)=-0.7854
SQL内置函数
ATAN2
ATAN2函数返回两个数值的反正切值。结果以弧度表示。
其语法格式如下:
ATAN2(first,second)
其中:
first 第一个数
second 第二个数
函数ATAN2(first,second)与函数TAN(first/second)的功能是相同的。
下面的例子显示了1和-1的反正切值:
ATAN2(1,.5)=1.107
TAN(1/.5)=1.107
SQL内置函数
BFILENAME
BFILENAME函数返回一指向磁盘的物理文件的BFILE地址。
其语法格式如下:
BFILENAME(directory,filename)
其中:
directory 一个包括指定文件的目录路径字符串。 该目录通过命令CREATE DIRECTORY产生。 但它不是一个操作系统目录
filename 指定目录中用户试图指定的文件名字。 该文件可以是预先不存在的文件
下面的例子解释了BFILENAME函数的使用情况:
BFILENAME(‘gif_dir’,’book_photo.gif’)
SQL内置函数
CEIL
CEIL函数根据输入值返回一个数值。输入参数可以是非整数值,但返回结果则是大于等于输入参数的最小整数。
其语法格式如下:
CEIL(number)
其中:
number 任意数值,十进制数
下面的例子解释了CEIL函数的使用情况:
CEIL(5.1)=6
CEIL(-5.1)=-5
应注意,对于负数使用该函数的结果。大于等于-5。1的最小整数精确地讲应该是-5。这是数学上的情况,但首先也是记数中知觉上的感觉。
SQL内置函数
CHARTOROWID
CHARTOROWID函数将一个字符串转换成rowid类型。
其语法格式如下:
CHARTOROWID(string)
其中:
string 待处理的字符串。该字符串应该能表示一个有效的 rowid型数据
下面的例子解释了CHARTOROWID函数的使用情况:
SQL>SELECT ROWID FORM dual;
ROWID
----------
AAAADCAABAAAAVUAAA
SQL>SELECT * FORM dual
2 WHEREROWID=CHARTOROWID(‘AAAADCAABAAAAVUAAA’);
D
-
X
SQL内置函数
CHR
CHR函数就相应的数据库字符集,返回一个指定数值相应的字符。例如,给定一个ASCII值,使用CHR函数返回该数值表示的字符。
其语法格式如下:
CHR(integer[USING NCHAR_CS])
其中:
integer 在相应的字符集中,代表对应字符 的整数类型
USINGNCHAR_CS 指明相应的字符集
下面的例子解释了CHR函数的使用情况:
CHR(10)=a tab character
CHR(65)=‘A’
这些例子假设基于ASCII字符集
SQL内置函数
CONCAT
CONCAT函数将两个输入字符串,组合成一个,并返回结果。
其语法格式如下:
CONCAT(string_1,string_2)
其中:
string_1 第一个字符串
string_2 第二个字符串。该字符串将被拼接在第一 个字符串的尾部
下面的例子解释了CONCAT函数的使用情况:
CONCAT(‘This is’,’a test’)=‘This is atest’
SQL内置函数
CONVERT
CONVERT函数把一字符串从一个字符集转换到另一字符集。
其语法格式如下:
CONVERT(string,dest_char_set[,source_char_set])
其中:
string 待转换的字符串
dest_char_set 目标字符串
source_char_set 源字符集。省略默认数据库字符集
下面的例子解释了CONVERT函数的使用情况:
CONVERT(‘Jonathan’,’WE8EBDIC37C’,’US7ASCII’)
CONVERT(‘Jonathan’,’WE8ROMAN8’)
第一个例子从US7ASCII字符集转换。第二个例子从默认数据库字符集转换。
SQL内置函数
COS
COS函数返回一角度的余弦值。结果为弧度值。
其语法格式如下:
COS(angle)
其中:
angle 角度值,用弧度表示
下面的例子解释了COS函数的使用情况:
COS(90*3.14/180)=.000796
COS(0)=1
SQL内置函数
COSH
COSH函数返回一角度的双曲余弦值。
其语法格式如下:
COSH(angle)
其中:
angle 角度值,以弧度表示
下面的例子解释了COSH函数的使用情况:
COSH(0)=1
COSH(90*3.14/180)=2.507
将角度值转化成弧度值,可以参考COS函数的有关部门信息
SQL内置函数
DECODE(一)
DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值。
其具体的语法格式如下:
DECODE(input_value,value,result[,value,result…][,default_result]);
其中:
input_value 试图处理的数值。DECODE函数将该数值与一系列的序偶相比 较,以决定最后的返回结果
value 是一组成序偶的数值。如果输入数值与之匹配成功,则相应 的结果将被返回。对应一个空的返回值,可以使用关键字 NULL于之对应
result 是一组成序偶的结果值
default_result 未能与任何一序偶匹配成功时,函数返回的默认值
下面的例子说明了,人们如何读取用户CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。
SELECT checkup_type,
DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,
’Invalid’)
FROM checkup;
SQL内置函数
DECODE(二)
这个SQL语句展示了DECODE函数的左右基础功能特征。函数的输入值时BLOOD_TEST_FLAG列的数据,如果该列的值是‘Y’,那么,函数返回‘YES’。如果该列的值是NULL,那么,函数返回‘None’。如果没有与任何一个序偶匹配成功,则表示该列当前值无效,函数返回‘Invalid’。
在SQL疑难问题中,DECODE函数常常发挥非常灵活的作用。其中的一个技术就是为了某种目的可以将一个表的行转换成列。例如:
SQL>SELECTTO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’),
2 COUNT(*)
3 FROM AQUATIC_ANIMAL
4 WHERETO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’)
5 IN(‘1995’,’1996’,’1997’)
6 GROUP BYTO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’);
TO_C COUNT(*)
--- -------
1995 1
1996 3
1997 1
SQL内置函数
该例告诉我们,1995、1996和1997年各出生了多少动物。每一行显示不同的年。一旦希望将这些数值显示成3列,该如何处理?可以通过如表B-1所示的方法处理之。
SQL内置函数
EMPTY_BLOB
EMPTY_BLOB函数返回一空的BLOB指针,该指针可以用在INSERT或UPDATE命令中,以初始化BLOB列项。
其具体的语法格式如下:
EMPTY_BLOB()
该函数没有参数。下面的例子说明了如何使用该函数初始化BLOB列,并作为一个新行插入到表中。
INSERT INTO some_table
(blob_column)
VALUES(EMPTY_BLOB());
SQL内置函数
EMPTY_CLOB
EMPTY_CLOB函数与EMPTY_BLOB函数的功能类似,只不过对应CLOB而已。它返回一空的CLOB指针,该指针可以用在INSERT或UPDATE命令中,以初始化CLOB列。
其具体的语法格式如下:
EMPTY_CLOB()
该函数没有参数。下面的例子说明了如何使用该函数初始化CLOB列,并作为一个新行插入到表中。
INSERT INTO some_table
(clob_column)
VALUE(EMPTY_CLOB());
SQL内置函数
EXP
EXP函数返回e的一个幂。在数学上e经常被用来表示一指定的特殊数值(一个十进制的无限数)2.178…,它是数学的基础。其具体的语法格式如下:
EXP(exponent)
其中:
exponent 返回e的少次(exponent)幂
下面是该函数的使用情况:
EXP(1)=2.7182818
EXP(3)=20.085537(2.7182818*2.7182818*2.7182818)
SQL内置函数
FLOOR
FLOOR函数返回一个小于或等于给定十进制数的最大整数。该函数的工作机制与函数CEIL的情况极为相似,但却正好相反。
其具体的语法格式如下:
FLOOR(number)
其中:
number 任意数,包括十进制数
下面是该函数的使用情况:
FLOOR(5.1)=5
FLOOR(-5.1)=-6
为了理解函数FLOOR和函数CEIL在处理负数时的不同机制,可以比较函数FLOOR(5.1)和函数CEIL(-5.1)的执行结果。
SQL内置函数
GREATEST
GREATEST函数返回一数值列表中的最高数值。可使用GREATEST函数处理数字数据和字符数据。
其具体的语法格式如下:
GREATEST(value,value,value,…)
其中:
value 数字数据或文本数据。一般地,所有数值的类型应该一致。 如果给定的数据类型相混,返回值将匹配第一个参数类型, 其余的所有参数自然被转换成对应的类型
下面是该函数的使用情况:
GREATEST(1,3,9,45,93,2,-100)=93
GREATEST(’Jenny’,’Jeff’,’Ashley’)=’Jenny’
GREATEST(’11’,101)=‘11’
第三个例子反映了参数类型相混时的函数处理情况。因为第一的数据类型是字符串,所以,Oracle将数字1转换成字符串‘1’,以匹配对应的数据类型。虽然在数值上101大于11,但如果都转换成字符串,则结果正好相反。这种情况下,‘11’大于‘101’,并且,也是函数的返回结果。
SQL内置函数
HEXTORAW
函数HEXTORAW将一个由十六进制字符组成的字符串转换成一个raw数值。
其具体的语法格式如下:
HEXTORAW(string)
其中:
string 十六进制字符组成的字符串数据
SQL内置函数
INITCAP
INITCAP函数接收一字符串,并转换该字符串中的所有单词,以使各单词均以大写字母开头。
其的语法格式如下:
INITCAP(string)
其中:
string 任意一VARCHAR2或CHAR型数据
下面是该函数的使用情况。
INITCAP(‘This is a test’=‘This is atest’
SQL内置函数
INSTR
函数INSTR会告诉用户,其中的一个字符串(参数)是否在另一个字符串(也是参数)当中。
其具体的语法格式如下:
INSTR(string,substring[,start[,occurrence]])
其中:
string 待查询的字符串
substring 正在搜索的字符串
start 说明开始搜索的字符位置。默认值是1,就是说,搜 索将从字符串的第一个字符开始。如果,参数为负 则表示搜索的位置从右边开始计算,而不是默认的 从左边开始
occurrence 指定试图搜索的子串的第几次出现,默认值是1,意 味着希望其首次出现
该函数反馈一索引顺序值,在该位置发现了要搜索的子串。下面的例子指出了INSTR函数的使用情况:
INSTR(‘AAABAABA’,’B’)=4
INSTR(‘AAABAABA’,’B’,1,2)=7
SQL内置函数
INSTRB
该函数与INSTR的功能极为类似,也将反馈其中的一个字符串(参数)是否在另一个字符串(也是参数)当中。只是该函数返回的是一字节索引位置,而不是一字符索引位置。其实,仅仅在多个字符集同时被使用时,这种不同才有意义。
其具体的语法格式如下:
INSTRB(string,substring[,start[,occurrence]])
其中:
string 待查询的字符串
substring 正在搜索的字符串
start 说明开始搜索的字符位置。默认值是1,就是说,搜索将从字 符串的第一个字符开始。如果,参数为负则表示搜索的位置从 右边开始计算,而不是默认的从左边开始
occurrence 指定试图搜索的子串的第几次出现,默认值是1,意味着希望 其首次出现
相关文章推荐
- sql server 中将datetime类型转换为date,或者time
- SQLite可视化管理工具
- VS2008C#连接SQLserver2008示例
- Oracle删除死锁进程的方法
- 命令行创建SQL数据库
- Mysql数据库安装基本设置
- 如何启动oracle数据库
- oracle 中的cascade
- Hibernate Configuration 之连接数据库
- MySQL 主主复制
- Redis 主从配置和参数详解
- MySQL MVCC(多版本并发控制)
- MySQL 变量和条件
- MySQL redo与undo
- MySQL 重做日志文件
- MySQL 存储过程和函数
- MySQL InnoDB存储引擎
- MySQL 主从复制
- MySQL 清空慢查询文件
- MySQL 常用的UPDATE操作