ORACLE中的内置函数ASCII返回与指定的字符对应的十进制数;SQLselectascii('A')A,ascii('a')a,ascii('0')zero,ascii('')spacefromdual;AAZEROSPACE----------------------------------------65974832ABS返回指定值的绝对值SQLselectabs(100),abs(-100)fromdual;ABS(100)ABS(-100)------------------100100ACOS给出反余弦的值SQLselectacos(-1)fromdual;ACOS(-1)---------3.1415927ADD_MONTHS增加或减去月份SQLselectto_char(add_months(to_date('199912','yyyymm'),2),'yyyymm')fromdual;TO_CHA------200002SQLselectto_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm')fromdual;TO_CHA------199910AVG(DISTINCT|ALL)all表示对所有的值求平均值,distinct只对不同的值求平均值注意,不能对日期类型求下平均值SQLWKScreatetabletable3(xmvarchar(8),salnumber(7,2));语句已处理。SQLWKSinsertintotable3values('gao',1111.11);SQLWKSinsertintotable3values('gao',1111.11);SQLWKSinsertintotable3values('zhu',5555.55);SQLWKScommit;SQLselectavg(distinctsal)fromgao.table3;AVG(DISTINCTSAL)----------------3333.33SQLselectavg(allsal)fromgao.table3;AVG(ALLSAL)-----------2592.59ASIN给出反正弦的值SQLselectasin(0.5)fromdual;ASIN(0.5)---------.52359878ATAN返回一个数字的反正切值SQLselectatan(1)fromdual;ATAN(1)---------.78539816BFILENAME(dir,file)指定一个外部二进制文件SQLinsertintofile_tb1values(bfilename('lob_dir1','image1.gif'));CEIL返回大于或等于给出数字的最小整数SQLselectceil(3.1415927)fromdual;CEIL(3.1415927)---------------4CHARTOROWID将字符数据类型转换为ROWID类型SQLselectrowid,rowidtochar(rowid),enamefromscott.emp;ROWIDROWIDTOCHAR(ROWID)ENAME----------------------------------------------AAAAfKAACAAAAEqAAAAAAAfKAACAAAAEqAAASMITHAAAAfKAACAAAAEqAABAAAAfKAACAAAAEqAABALLENAAAAfKAACAAAAEqAACAAAAfKAACAAAAEqAACWARDAAAAfKAACAAAAEqAADAAAAfKAACAAAAEqAADJONESCHR给出整数,返回对应的字符;SQLselectchr(54740)zhao,chr(65)chr65fromdual;ZHC---赵ACOALESCECOALESCE函数从参数列表中返回第一个非空值。如果所有参数为空,那么返回空值。COALESCE函数有两个强制参数和任何数量的可选参数。其语法是COALESCE(expr1,expr2,...,exprn),如果expr1不是空值,就返回它,否则,如果expr2不是空值,就返回它,以此类推。COALESCE是NVL函数的一般形式,如下面两个等式所示:COALESCE(expr1,expr2)=NVL(expr1,expr2)COALESCE(expr1,expr2,expr3)=NVL(expr1,NVL(expr2,expr3))如果找到非空值,COALESCE返回的数据类型与第一个非空参数的数据类型相同。为了避免出现“ORA-00932:inconsistentdatatypes”错误,所有非空参数的数据类型必须与第一个非空参数的数据类型一致。考察下面三个查询:查询1:SQLselectcoalesce(null,null,null,'astring')fromdual;COALESCE(NULL,NULL,NULL,'ASTRI------------------------------astring查询2:SQLselectcoalesce(null,null,null)fromdual;COALESCE(NULL,NULL,NULL)------------------------查询3:SQLselectcoalesce(substr('abc',4),'Notbc','Nosubstring')fromdual;COALESCE(SUBSTR('ABC',4),'NOTB------------------------------Notbc查询1返回第四个参数:一个字符串,因为这是出现的第一个非空参数。查询2返回空值,因为所有参数都是空值。查询3计算它的第一个参数,即嵌套的SUBSTR函数,发现它是空的,第二个参数为非空,因此返回字符串'Notbc'。CONCAT连接两个字符串;SQLselectconcat('010-','88888888')||'转23'高乾竞电话fromdual;高乾竞电话----------------010-88888888转23CONVERT(c,dset,sset)将源字符串sset从一个语言字符集转换到另一个目的dset字符集SQLselectconvert('strutz','we8hp','f7dec')conversionfromdual;conver------strutzCONVERT('x','desc','source')将x字段或变量的源source转换为descSQLselectsid,serial#,username,decode(command,20,'none',32,'insert',43,5'select',66,'update',77,'delete',88,'drop',9'other')cmdfromv$sessionwheretype!='background';SIDSERIAL#USERNAMECMD------------------------------------------------------11none21none31none41none51none61none71275none81275none920GAOselect1040GAOnoneCOS返回一个给定数字的余弦SQLselectcos(-3.1415927)fromdual;COS(-3.1415927)----------------1COSH返回一个数字反余弦值SQLselectcosh(20)fromdual;COSH(20)---------242582598COUNTSyntaxCOUNT({*|[DISTINCT|ALL]expr})[OVER(analytic_clause)]PurposeCOUNT返回查询返回的行数。您可以将其用作聚合或分析函数。如果指定DISTINCT,则只能指定analytic_clause的query_partition_clause。不允许使用order_by_clause和windowing_clause。如果指定expr,则COUNT返回expr不为null的行数。您可以计算所有行,或只计算不同的expr值。如果指定星号(*),则此函数将返回所有行,包括重复值和空值。COUNT从不返回null。Examples示例表:SQLselect*fromscott.emp;EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO-----------------------------------------------------------------------------7369SMITHCLERK790217-12-80800207499ALLENSALESMAN769820-02-811600300307521WARDSALESMAN769822-02-811250500307566JONESMANAGER783902-04-812975207654MARTINSALESMAN769828-09-8112501400307698BLAKEMANAGER783901-05-812850307782CLARKMANAGER783909-06-812450107839KINGPRESIDENT17-11-815000107844TURNERSALESMAN769808-09-8115000307900JAMESCLERK769803-12-81950307902FORDANALYST756603-12-813000207934MILLERCLERK778223-01-8213001012rowsselected.查询EMP表的所有行数,包括重复行和在任何列中含有空值的行。SQLselectcount(*)fromscott.emp;COUNT(*)----------12查询deptno为20的所有行数SQLselectcount(*)fromscott.empwheredeptno=20;COUNT(*)----------3查询指定comm列上的行数,此查询返回comm列上非null的行数。SQLselectcount(comm)fromscott.emp;COUNT(COMM)-----------4在count函数指定列deptno前加上distinct关键字,返回结果不包括null和重复值的行数。SQLselectcount(distinctdeptno)fromscott.emp;COUNT(DISTINCTDEPTNO)---------------------3DECODEDECODE函数通过测试前两项的相等性来实现if-then-else条件逻辑,如果它们相等,则返回第三个参数,如果它们不相等,可能返回另一项。DECODE函数至少使用三个强制参数,但可以使用更多参数。该函数的语法是DECODE(expr1,comp1,iftrue1,[comp2,iftrue2...[compN,iftrueN]],[iffalse])。这些参数的计算如下面的伪代码示例所示:Ifexpr1=comp1thenreturniftrue1elseifexpr1=comp2thenreturniftrue2...elseifexpr1=compNthenreturniftrueNelsereturnnull|iffalse;在代码中expr1与comp1比较,如果它们相等,那么返回iftrue1;如果expr1不等于comp1,那么接下来会出现什么情况取决于可选参数comp2和iftrue2是否存在。如果它们存在,就比较expr1和comp2,如果这两者相等,那么返回iftrue2;如果不相等,则接下来发生的情况取