SQL Server和Oracle常用函式對比

2021-04-13 21:36:47 字數 3147 閱讀 9121

數學函式 

1.絕對值 

s:select abs(-1) value 

o:select abs(-1) value from dual

2.取整(大)

s:select ceiling(-1.001) value 

o:select ceil(-1.001) value from dual 

3.取整(小) 

s:select floor(-1.001) value 

o:select floor(-1.001) value from dual

4.取整(擷取) 

s:select cast(-1.002 as int) value

o:select trunc(-1.002) value from dual 

5.四捨五入 

s:select round(1.23456,4) value 1.23460 

o:select round(1.23456,4) value from dual 1.2346 

6.e為底的冪 

s:select exp(1) value 2.7182818284590451 

o:select exp(1) value from dual 2.71828182 

7.取e為底的對數 

s:select log(2.7182818284590451) value 1 

o:select ln(2.7182818284590451) value from dual; 1 

8.取10為底對數 

s:select log10(10) value 1 

o:select log(10,10) value from dual; 1 

9.取平方 

s:select square(4) value 16 

o:select power(4,2) value from dual 16 

10.取平方根 

s:select sqrt(4) value 2 

o:select sqrt(4) value from dual 2 

11.求任意數為底的冪 

s:select power(3,4) value 81 

o:select power(3,4) value from dual 81 

12.取隨機數 

s:select rand() value 

o:select sys.dbms_random.value(0,1) value from dual; 

13.取符號 

s:select sign(-8) value -1 

o:select sign(-8) value from dual -1 

14.圓周率 

s:select pi() value 3.1415926535897931 

o:不知道 

15.sin,cos,tan 引數都以弧度為單位 

例如:select sin(pi()/2) value 得到1(sqlserver)

16.asin,acos,atan,atan2 返回弧度 

17.弧度角度互換(sqlserver,oracle不知道) 

degrees:弧度->角度 

radians:角度->弧度 

數值間比較 

18. 求集合最大值 

s:select max(value) value from 

(select 1 value 

union 

select -2 value

union 

select 4 value 

union 

select 3 value)a 

o:select greatest(1,-2,4,3) value from dual 

19. 求集合最小值 

s:select min(value) value from 

(select 1 value 

union 

select -2 value

union 

select 4 value 

union 

select 3 value)a 

o:select least(1,-2,4,3) value from dual 

20.如何處理null值(f2中的null以10代替)

s:select f1,isnull(f2,10) value from tbl 

o:select f1,nvl(f2,10) value from tbl 

21.求字元序號 

s:select ascii('a') value 

o:select ascii('a') value from dual 

22.從序號求字元 

s:select char(97) value 

o:select chr(97) value from dual 

23.連線 

s:select '11'+'22'+'33' value

o:select concat('11','22')  33 value from dual

23.子串位置 --返回3 

s:select charindex('s','sdsq',2) value 

o:select instr('sdsq','s',2) value from dual 

23.模糊子串的位置 --返回2,引數去掉中間%則返回7 

s:select patindex('%d%q%','sdsfasdqe') value 

o:oracle沒發現,但是instr可以通過第四個引數控制出現次數 

select instr('sdsfasdqe','sd',1,2) value from dual 返回6 

24.求子串 

s:select substring('abcd',2,2) value 

o:select substr('abcd',2,2) value from dual 

25.子串代替 返回aijklmnef 

s:select stuff('abcdef', 2, 3, 'ijklmn') value 

o:select replace('abcdef', 'bcd', 'ijklmn') value from dual

資料遷移 從SqlServer到Oracle

要把sqlserver中的資料遷移到oracle有多種方法。如果資料量小,可以直接使用sql語句生成器 sqldatatoscript.exe 直接生成sql語句。如果資料量大,建議使用sql loader工具進行資料遷移。具體步驟如下 1.建立中間庫表。之所以需要建立中間庫表是因為,sqlserv...

SQLServer表結構轉換成Oracle表結構

function sqlserver 表結構轉換成oralce 表結構,不支援索引以及自動增長 取消影響行數 set nocount on 建立表名游標 declare table cursor cursor for select convert varchar 300 x.name name,co...

oracl 分頁語句

select from select rownum en,ta.from select ri.info detail type,ri.info num,rmx.reagent num,ri.info batch,ri.info lot,ri.info icebox,ri.info store dat...