/*整理背景201403訂單中心數據庫遷移(整理Oracle與SQL的差別)
整理規則第一句爲SQL Server 第二句爲Oracle*/
--數據類型
int integer
varchar varchar2
double number(25,10)
datetime date
/*
--臨時表
ORACLE 數據庫在使用臨時表時,要先將臨時表建到數據庫中,而後才能使用臨時表。
*/html
/*
--多條語句同時放在一塊兒執行時
begin
語句1;
語句2;
語句3;
。;。;。;
end;
*/
/*
很是有用的函數
floor(參數) 去除小數點後的全部小數位
coalesce(參數1,參數2,參數3,參數4) 返回第一個不爲null的值,若都爲null則返回null
-->ORACLE LPAD(參數,長度,填充值) 向左填充 RPAD(參數,長度,填充值) 向右填充
*/sql
--字符串拼接語法
select 'a'+'b';
select 'a'||'b' from dual;
--查詢第一條數據
select top 1 from Table1;
select * from Table1 where rownum<2;
--查詢一個字段若是是空則替換默認值
select ISNULL('字段1',0) from Table1;
select nvl('字段1',0) from Table1;
--截取字符串
select SUBSTRING('字段1','開始位置','截取長度') from Table1;
select SUBSTR('字段1','開始位置','截取長度') from Table1;
--去字段值的長度
select len('字段1') from Table1;
select length('字段1') from Table1;
--數據類型轉換
select CONVERT('字段1',datatype) from Table1;select CAST('字段1' as dataType) from Table1;
select CAST('字段1' as dataTye) from Table1;
--注:在數據類型轉換過程當中cast語法select cast(1.2 as int) select cast(1.6 as int)這兩個結果在sql server中
--爲1 oracle中結果爲1,2使用過程當中必定要注意
--左右截取
select left('123',2)-->12
select right('123',2)-->23
--ORACLE中沒有左右截取,實現一樣的效果用SUBSTR。數據庫
--Update語句的區別(多表聯合更新)
--注:單張表更新SQL與ORACLE同樣
update Table1 set 字段1='value1',字段2='value2'
from Table2,Table1
where Table2.字段1=Table1.字段1 and Table2.字段2=Table1.字段2oracle
MERGE INTO Table1
USING Tabel2
ON(Table2.字段1=Table1.字段1 and Table2.字段2=Table1.字段2)
WHEN MATCHED THEN UPDATE SET
字段1='value1',字段2='value2'函數
UPDATE Table1 set 字段1='value1' where exists
(select 1 from Table2
where Table1.字段2=Table2.字段2
and Table1.字段2='字段2')
--Delete語句
--注:單張表的刪除語句SQL與ORACLE同樣
Delete from Table1,Table2 where
Table2.字段1=Table1.字段1 and Table2.字段2=Table1.字段2server
Delete from Table1 where exists
(select 1 from Table2
where Table2.字段1=Table1.字段1
and Table2.字段2=Table1.字段2)htm
轉載自:https://www.cnblogs.com/cwgyn/p/3619868.htmlblog