1.字串連線
oracle用 || 符號作為連線符,而sql server的連線符是加號:+ 。
oracle查詢如下:select 'name' || 'last name' from table
sql server查詢如下:select 'name' + 'last name'
2.數字取捨
oracle資料庫內有乙個trunc函式,該函式返回m位十進位制數的n位;如果省略m則n就是0位。而sql server下可以用round。
oracle查詢如下:select trunc(15.79,1) from dual; --不四捨五人
sql server查詢如下:select round(15.79, 0) ; --四捨五入
3.數字轉換
oracle的to_char函式可以把n位number資料型別轉換為varchar2 資料型別,同時採用可選的數字格式。 而sql server則通過str函式返回數字轉換之後的字元資料。不過,該函式不具方便的format引數。
oracle查詢如下所示:select to_char(15.79 , 99.99) from dual
select to_char(sysdate,'yyyy-mm-dd') from dual
sql server查詢如下:select str(15.79)
select cast(convert(varchar(10), getdate(),120) as varchar(10))
4.length和len
oracle查詢如下:select length('sql') from dual;
sql server查詢如下:select len('sql') ;
5.日期
兩種系統都具有各自的當前日期和時間格式。 oracle取得日期:sysdate , sql server則是:getdate()
oracle日期值中的月份進行了格式調整(返回日期再加上n月):select add_months(sysdate, 12) from dual
sql server則是如下完成同等功能的:select dateadd(mm,12, getdate())
oracle日期值中直接對資料進行減法操作:select add_months(sysdate, 12) - sysdate from dual
sql server則是如下完成同等功能的:select datediff(dd, getdate() ,dateadd(mm,12, getdate()))
6.執行查詢時
plsql執行查詢的時候,from子句是必須的,而sql server不一定
oracle查詢如下: select 2*5 from dual
sql server查詢如下: select 2*5
7. 更新語句的區別
在t-sql中更新相對簡單些,直接用下面的語句都是可以:
update t1 set t1.money = t2.money from sell t1 left join sellst t2 on t1.id = t2.id
update sell set money = t2.money from sellst t2 where t2.id = id
而在oracle中這樣寫是不對的,應該更改如下:
update sell t1 set t1.money = (select t2.money from sellst t2 where t1.id = t2.id) where exists (select 1 from sellst t2 where t2.id = t1.id)
轉int啥啥啥的
1 string轉int型別的話。需要用double.valueof 這寫string型別的資料 intvalue 2 保留小數點 float scale float 100 decimalformat fnum new decimalformat 0.00 string dd fnum.forma...
函式指標是啥?
我們知道普通變數在定義的時候,編譯器就會自動分配一塊適合的記憶體。函式也是同樣的,編譯的時候會將乙個函式編譯好,然後放在一塊記憶體中。上面這段說法實際很不準確,因為編譯器不會分配記憶體,編譯好的 也是以二進位制的形式放在磁碟上,只有程式開始執行時才會載入到記憶體 如果我們把函式的首位址也儲存在某個指...
樹狀陣列的那啥啥啥
emmmmm,在我們學習樹狀陣列之前,我們應該知道lowbit n 運算,lowbit n 定義為非負整數n在二進位制下 最低位的1及後面所有的0 構成的數值,例如n 10的二進位制表示為 1010 2 則 lowbit n 2 10 2 顯然可知 lowbit n n and sim n 1 n ...