Oracle函式啥的

2021-07-05 17:43:20 字數 1908 閱讀 7361

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 ...