|
转换函数
下面是Oracle支持的转换函数和它们的Microsoft SQL Server等价函数。
函数
Oracle
Microsoft SQL Server
数字转换为字符
TO_CHAR
CONVERT
字符转换为数字
TO_NUMBER
CONVERT
日期转换为字符
TO_CHAR
CONVERT
字符转换为日期
TO_DATE
CONVERT
16进制转换为2进制
HEX_TO_RAW
CONVERT
2进制转换为16进制
RAW_TO_HEX
CONVERT
其它行级别的函数
下面是Oracle支持的其它行级别的函数以及它们的Microsoft SQL Server等价函数。
函数
Oracle
Microsoft SQL Server
返回第一个非空表达式
DECODE
COALESCE
当前序列值
CURRVAL
N/A
下一个序列值
NEXTVAL
N/A
如果exp1 = exp2, 返回null
DECODE
NULLIF
用户登录账号ID数字
UID
SUSER_ID
用户登录名
USER
SUSER_NAME
用户数据库ID数字
UID
USER_ID
用户数据库名
USER
USER_NAME
当前用户
CURRENT_USER
CURRENT_USER
用户环境(audit trail)
USERENV
N/A
在CONNECT BY子句中的级别
LEVEL
N/A
合计函数
下面是Oracle支持的合计函数和它们的Microsoft SQL Server等价函数。
函数
Oracle
Microsoft SQL Server
Average
AVG
AVG
Count
COUNT
COUNT
Maximum
MAX
MAX
Minimum
MIN
MIN
Standard deviation
STDDEV
STDEV or STDEVP
Summation
SUM
SUM
Variance
VARIANCE
VAR or VARP
条件测试
Oracle的DECODE语句和Microsoft SQL Server的CASE表达式都执行条件测试。当test_value中的值和后面的任何表达式匹配的时候,相关的值就返回。如果没有找到任何匹配的值,就返回default_value。如果没有指定default_value,在没有匹配的时候,DECODE和CASE都返回一个NULL。下表显示了该语句的语法,同时给出了转换DECODE命令的示例。
Oracle
Microsoft SQL
DECODE (test_value, expression1, value1 [[,expression2, value2] […]] [,default_value] )
CREATE VIEW STUDENT_ADMIN.STUDENT_GPA (SSN, GPA) AS SELECT SSN, 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) FROM STUDENT_ADMIN.GRADE GROUP BY SSN
CASE input_expression WHEN when_expression THEN result_expression [[WHEN when_expression THEN result_expression] [...]] [ELSE else_result_expression] END
CREATE VIEW STUDENT_ADMIN.STUDENT_GPA (SSN, GPA) AS SELECT SSN, ROUND(AVG(CASE grade WHEN ''''A'''' THEN 4 WHEN ''''A+'''' THEN 4.3 WHEN ''''A-'''' THEN 3.7 WHEN ''''B'''' THEN 3 WHEN ''''B+'''' THEN 3.3 WHEN ''''B-'''' THEN 2.7 WHEN ''''C'''' THEN 2 WHEN ''''C+'''' THEN 2.3 WHEN ''''C-'''' THEN 1.7 WHEN ''''D'''' THEN 1 WHEN ''''D+'''' THEN 1.3 WHEN ''''D-'''' THEN 0.7 ELSE 0 END),2) FROM STUDENT_ADMIN.GRADE GROUP BY SSN
CASE表达式可以支持用SELECT语句执行布尔测试,这是DECODE命令所不允许的。欲了解关于CASE表达式的详细信息,请参阅SQL Server联机手册。
把值转换为不同的数据类型
Microsoft SQL Server的CONVERT和CAST函数都是多目标转换函数。它们提供了相似的功能,把一种数据类型的表达式转换为另一种数据类型的表达式,并且支持多种专门数据的格式。
- CAST(expression AS data_type)
- CONVERT (data type[(length)], expression [, style])
CAST是一个SQL-92标准的函数。这些函数执行同Oracle的TO_CHAR、TO_NUMBER、TO_DATE、HEXTORAW以及RAWTOTEXT函数相同的功能。
这里所指的数据类型是任何表达式将被转换成为的系统数据类型。不能使用用户定义的数据类型。长度参数是可选的,该参数用于char、varchar、binary以及varbinary数据类型。允许的最大长度是8000。
转换
Oracle
Microsoft SQL Server
字符到数字
TO_NUMBER(''''10'''')
CONVERT(numeric, ''''10'''')
数字到字符
TO_CHAR(10)
CONVERT(char, 10)
字符到日期
TO_DATE(''''04-JUL-97'''') TO_DATE(''''04-JUL-1997'''', ''''dd-mon-yyyy'''') TO_DATE(''''July 4, 1997'''', ''''Month dd, yyyy'''')
CONVERT(datetime, ''''04-JUL-97'''') CONVERT(datetime, ''''04-JUL-1997'''') CONVERT(datetime, ''''July 4, 1997'''')
日期到字符
TO_CHAR(sysdate) TO_CHAR(sysdate, ''''dd mon yyyy'''') TO_CHAR(sysdate, ''''mm/dd/yyyy'''')
CONVERT(char, GETDATE()) CONVERT(char, GETDATE(), 106) CONVERT(char, GETDATE(), 101)
16进制到2进制
HEXTORAW(''''1F'''')
CONVERT(binary, ''''1F'''')
2进制到16进制
RAWTOHEX (binary_column)
CONVERT(char, binary_column)
请注意字符串是怎样转换为日期的。在Oracle中,缺省的日期格式模型是“DD-MON-YY”如果你使用任何其它格式,你必须提供一个合适的日期格式模型。CONVERT函数自动转换标准日期格式,不需要任何格式模型。
从日期转换到字符串时,CONVERT函数的缺省输出是“dd mon yyyy hh:mm:ss:mmm(24h)”。用一个数字风格代码来格式化输出,使它能输出为其它类型的日期格式模型。欲了解CONVERT函数的详细信息,请参阅SQL Server联机手册。
下表显示了Microsoft SQL Server日期的缺省输出。
Without Century
With Century
Standard
Output
-
0 or 100 (*)
Default
mon dd yyyy hh:miAM (or PM)
1
101
USA
mm/dd/yy
2
102
ANSI
yy.mm.dd
3
103
British/French
dd/mm/yy
4
104
German
dd.mm.yy
<< 上一页 [11] [12] [13] [14] [15] [16] [17] 下一页 [Access]sql随机抽取记录 [Access]ASP&SQL让select查询结果随机排序的实现方法 [聊天工具]企业邮件系统的利器----FoxMail Server [系统软件]OPEN SERVER 5.0.5安装EXP300阵列柜 [系统软件]SQL语句性能优化--LECCO SQL Expert [系统软件]关于Windows2000Server的灾难恢复 [常用软件][网络]下载服务革命性风暴Poco Server评测 [C语言系列]动态创建SQL Server数据库、表、存储过程等架构信… [C语言系列]SQL Server到DB2连接服务器的实现 [C语言系列]SQL Server到SYBASE连接服务器的实现
|