字符數據類型 CHAR CHAR 都是固定長度字符資料但oracle 里面最大度為2kb,SQLServer里面最大長度為8kb
變長字符數據類型 VARCHAR2 VARCHAR Oracle 里面最大長度為 4kb,SQLServer里面最大長度為8kb
根據字符集而定的固定長度字符串 NCHAR NCHAR 前者最大長度2kb后者最大長度4kb
根據字符集而定的可變長度字符串 NVARCHAR2 NVARCHAR 二者最大長度都為4kb
日期和時間數據類型 DATE 有Datetime和Smalldatetime兩種 在oracle 里面格式為DMY在SQLSerser里面可以調節(jié),默認的為MDY
數字類型 NUMBER(P,S) NUMERIC[P(,S)] Oracle 里面p代表小數點左面的位數,s代表小數點右面的位數。而SQLServer里面p代表小數點左右兩面的位數之和,s代表小數點右面的位數。
數字類型 DECIMAL(P,S) DECIMAL[P(,S)] Oracle 里面p代表小數點左面的位數,s代表小數點右面的位數。而SQLServer里面p代表小數點左右兩面的位數之和,s代表小數點右面的位數。
整數類型 INTEGER INT 同為整數類型,存儲大小都為4個字節(jié)
浮點數類型 FLOAT FLOAT
實數類型 REAL REAL
ORACLE 內部函數大全以及與SQLSERVER的區(qū)別:
下面是Oracle 支持的字符函數和它們的Microsoft SQL Server等價函數。
函數 Oracle Microsoft SQL Server
把字符轉換為ASCII :ASCII ASCII
字串連接: 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-------------------- DATELENGTH or LEN
列表中最大的字符串 GREATEST-------------------- N/A
列表中最小的字符串 LEAST --------------------N/A
如果為NULL則轉換字串 NVL-------------------- ISNULL
日期函數
下面是Oracle 支持的日期函數和它們的Microsoft SQL Server等價函數。
函數 Oracle --------------------Microsoft SQL Server
日期相加 (date column +/- value) or ADD_MONTHS --------------------DATEADD
兩個日期的差 (date column +/- value) or MONTHS_BETWEEN --------------------DATEDIFF
當前日期和時間 SYSDATE --------------------GETDATE()
一個月的最后一天 LAST_DAY --------------------N/A
時區(qū)轉換 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 支持的轉換函數和它們的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
#p#副標題#e#
其它行級別的函數
下面是Oracle 支持的其它行級別的函數以及它們的Microsoft SQL Server等價函數。
函數 Oracle --------------------Microsoft SQL Server
返回第一個非空表達式 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
用戶環(huán)境(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表達式都執(zhí)行條件測試。
當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)
#p#副標題#e#
FROM STUDENT_ADMIN.GRADE
GROUP BY SSN
CASE input_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語句執(zhí)行布爾測試,這是DECODE命令所不允許的。欲了解關于CASE表達式的詳細信息,
請參閱SQL Server聯機手冊。
把值轉換為不同的數據類型
Microsoft SQL Server的CONVERT和CAST函數都是多目標轉換函數。它們提供了相似的功能,
把一種數據類型的表達式轉換為另一種數據類型的表達式,并且支持多種專門數據的格式。
CAST(expression AS data_type)
CONVERT (data type[(length)], expression [, style])
CAST是一個SQL -92標準的函數。這些函數執(zhí)行同Oracle 的TO_CHAR、TO_NUMBER、TO_DATE、HEXTORAW以及 RAWTOTEXT函數相同的功能。
這里所指的數據類型是任何表達式將被轉換成為的系統數據類型。不能使用用戶定義的數據類型。長度參數是可選的,
該參數用于char、varchar、binary以
關鍵詞標簽:ORACLE,SQL語法
相關閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數據庫實例的控制文件 為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數據處理 Oracle刪除表的幾種方法