您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > ORACLE内部函数大全以及与SQLSERVER的区别
ORACLE内部函数大全以及与SQLSERVER的区别下面是Oracle支持的字符函数和它们的MicrosoftSQLServer等价函数。函数OracleMicrosoftSQLServer把字符转换为ASCII:ASCIIASCII字串连接:CONCAT--------------(expression+expression)把ASCII转换为字符CHR,CHAR返回字符串中的开始字符(左起)INSTR,---------------CHARINDEX把字符转换为小写LOWER---------------------LOWER把字符转换为大写UPPER--------------------UPPER填充字符串的左边LPAD--------------------N/A清除开始的空白LTRIM--------------------LTRIM清除尾部的空白RTRIM--------------------RTRIM字符串中的起始模式(pattern)INSTR--------------------PATINDEX多次重复字符串RPAD--------------------REPLICATE字符串的语音表示SOUNDEX--------------------SOUNDEX重复空格的字串RPAD--------------------SPACE从数字数据转换为字符数据TO_CHAR--------------------STR子串SUBSTR--------------------SUBSTRING替换字符REPLACE--------------------STUFF将字串中的每个词首字母大写INITCAP--------------------N/A翻译字符串TRANSLATE--------------------N/A字符串长度LENGTH--------------------DATELENGTHorLEN列表中最大的字符串GREATEST--------------------N/A列表中最小的字符串LEAST--------------------N/A如果为NULL则转换字串NVL--------------------ISNULL日期函数下面是Oracle支持的日期函数和它们的MicrosoftSQLServer等价函数。函数Oracle--------------------MicrosoftSQLServer日期相加(datecolumn+/-value)orADD_MONTHS--------------------DATEADD两个日期的差(datecolumn+/-value)orMONTHS_BETWEEN--------------------DATEDIFF当前日期和时间SYSDATE--------------------GETDATE()一个月的最后一天LAST_DAY--------------------N/A时区转换NEW_TIME--------------------N/A日期后的第一个周日NEXT_DAY--------------------N/A代表日期的字符串TO_CHAR--------------------DATENAME代表日期的整数TO_NUMBER(TO_CHAR))--------------------DATEPART日期舍入ROUND--------------------CONVERT日期截断TRUNC--------------------CONVERT字符串转换为日期TO_DATE--------------------CONVERT如果为NULL则转换日期NVL--------------------ISNULL转换函数下面是Oracle支持的转换函数和它们的MicrosoftSQLServer等价函数。函数Oracle--------------------MicrosoftSQLServer数字转换为字符TO_CHAR--------------------CONVERT字符转换为数字TO_NUMBER--------------------CONVERT日期转换为字符TO_CHAR--------------------CONVERT字符转换为日期TO_DATECONVERT16进制转换为2进制HEX_TO_RAW--------------------CONVERT2进制转换为16进制RAW_TO_HEX--------------------CONVERT其它行级别的函数下面是Oracle支持的其它行级别的函数以及它们的MicrosoftSQLServer等价函数。函数Oracle--------------------MicrosoftSQLServer返回第一个非空表达式DECODE-------------------------------------COALESCE当前序列值CURRVAL--------------------N/A下一个序列值NEXTVAL--------------------N/A用户登录账号ID数字UID--------------------SUSER_ID用户登录名USER--------------------SUSER_NAME用户数据库ID数字UID--------------------USER_ID用户数据库名USER--------------------USER_NAME当前用户CURRENT_USER--------------------CURRENT_USER用户环境(audittrail)USERENV--------------------N/A在CONNECTBY子句中的级别LEVEL--------------------N/A合计函数下面是Oracle支持的合计函数和它们的MicrosoftSQLServer等价函数。函数Oracle--------------------MicrosoftSQLServerAverageAVG--------------------AVGCountCOUNT--------------------COUNTMaximumMAX--------------------MAXMinimumMIN--------------------MINStandarddeviationSTDDEV--------------------STDEVorSTDEVPSummationSUM--------------------SUMVarianceVARIANCE--------------------VARorVARP条件测试Oracle的DECODE语句和MicrosoftSQLServer的CASE表达式都执行条件测试。当test_value中的值和后面的任何表达式匹配的时候,相关的值就返回。如果没有找到任何匹配的值,就返回default_value。如果没有指定default_value,在没有匹配的时候,DECODE和CASE都返回一个NULL。下表显示了该语句的语法,同时给出了转换DECODE命令的示例。OracleMicrosoftSQLDECODE(test_value,expression1,value1,expression2,value2][…[,default_value])CREATEVIEWSTUDENT_ADMIN.STUDENT_GPA(SSN,GPA)ASSELECTSSN,ROUND(AVG(DECODE(grade,'A',4,'A+',4.3,'A-',3.7,'B',3,'B+',3.3,'B-',2.7,'C',2,'C+',2.3,'C-',1.7,'D',1,'D+',1.3,'D-',0.7,0)),2)FROMSTUDENT_ADMIN.GRADEGROUPBYSSNCASEinput_expressionWHENwhen_expressionTHENresult_expression[ELSEelse_result_expression]ENDCREATEVIEWSTUDENT_ADMIN.STUDENT_GPA(SSN,GPA)ASSELECTSSN,ROUND(AVG(CASEgradeWHEN'A'THEN4WHEN'A+'THEN4.3WHEN'A-'THEN3.7WHEN'B'THEN3WHEN'B+'THEN3.3WHEN'B-'THEN2.7WHEN'C'THEN2WHEN'C+'THEN2.3WHEN'C-'THEN1.7WHEN'D'THEN1WHEN'D+'THEN1.3WHEN'D-'THEN0.7ELSE0END),2)FROMSTUDENT_ADMIN.GRADEGROUPBYSSNCASE表达式可以支持用SELECT语句执行布尔测试,这是DECODE命令所不允许的。欲了解关于CASE表达式的详细信息,请参阅SQLServer联机手册。把值转换为不同的数据类型MicrosoftSQLServer的CONVERT和CAST函数都是多目标转换函数。它们提供了相似的功能,把一种数据类型的表达式转换为另一种数据类型的表达式,并且支持多种专门数据的格式。CAST(expressionASdata_type)CONVERT(datatype[(length)],expression[,style])CAST是一个SQL-92标准的函数。这些函数执行同Oracle的TO_CHAR、TO_NUMBER、TO_DATE、HEXTORAW以及RAWTOTEXT函数相同的功能。这里所指的数据类型是任何表达式将被转换成为的系统数据类型。不能使用用户定义的数据类型。长度参数是可选的,该参数用于char、varchar、binary以及varbinary数据类型。允许的最大长度是8000。转换OracleMicrosoftSQLServer字符到数字TO_NUMBER(ཆ')--------------------CONVERT(numeric,ཆ')数字到字符TO_CHAR(10)--------------------CONVERT(char,10)字符到日期TO_DATE(ཀ-JUL-97')TO_DATE(ཀ-JUL-1997','dd-mon-yyyy')TO_DATE('July4,1997','Monthdd,yyyy')--------------------CONVERT(datetime,ཀ-JUL-97')CONVERT(datetime,ཀ-JUL-1997')CONVERT(datetime,'July4,1997')日期到字符TO_CHAR(sysdate)TO_CHAR(sysdate,'ddmonyyyy')TO_CHAR(sysdate,'mm/dd/yyyy')--------------------CONVERT(char,GETDATE())CONVERT(char,GETDATE(),106)CONVERT(char,GETDATE(),101)16进制到2进制HEXTORAW(ƇF')--------------------CONVERT(binary,ƇF')2进制到16进制RAWTOHEX(binary_column)--------------------CONVERT(char,binary_column)请注意字符串是怎样转换为日期的。在Oracle中,缺省的日期格式模型是“DD-MON-YY”如果你使用任何其它格式,你必须提供一个合适的日期格式模型。CONVERT函数自动转换标准日期格式,不需要任何格式模型。从日期转换到字符串时,CONVERT函数的缺省输出是“ddmonyyyyhh:mm:ss:mmm(24h)”。用一个数字风格代码来格式化输出,使它能输出为其它类型的日期格式模型。欲了解CONVERT函数的详细信
本文标题:ORACLE内部函数大全以及与SQLSERVER的区别
链接地址:https://www.777doc.com/doc-4339818 .html