a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 165|回复: 2

[考试辅导] Oracle技术:Oracle和SQLServer常用函数对比分析(1)

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
数学函数   1.绝对值
/ F; S( ?4 s( L6 c9 p  }/ j- `  S:select abs(-1) value' J8 t. U9 `; w3 Y4 B
  O:select abs(-1) value from dual
& U7 R4 I# N/ M6 ~7 c! [  2.取整(大)7 v# H* b1 j/ c# O, p* Y4 i5 m
  S:select ceiling(-1.001) value7 q  v5 Q0 T5 P7 ?; j) T7 z
  O:select ceil(-1.001) value from dual6 `5 ]* k2 _0 z6 e
  3.取整(小)! O* w0 c& {7 E8 K* n4 D1 e
  S:select floor(-1.001) value
4 ]3 I3 d! C0 k  ?  O:select floor(-1.001) value from dual
( q. n$ C/ y3 C4 _  4.取整(截取)
, @8 n6 p2 k5 U4 h& L: a: p" S  S:select cast(-1.002 as int) value: X  m9 X+ C1 R0 o# @
  O:select trunc(-1.002) value from dual2 `7 C  b% c* x7 g, ~. F% d
  5.四舍五入
& u+ U0 B- Y2 ~  S:select round(1.23456,4) value 1.234601 k5 N! L/ H0 l2 d) }; C$ X: V
  O:select round(1.23456,4) value from dual 1.23466 \2 J- h- q. i& u* @
  6.e为底的幂
! e* P8 _( v& A  S:select Exp(1) value 2.7182818284590451- ]! K/ X7 P2 v$ q' O' D
  O:select Exp(1) value from dual 2.71828182- n# l3 E4 R0 K. Z" ]6 q- w2 A3 t  T
  7.取e为底的对数3 e1 y5 N6 i; z7 d' B% i
  S:select log(2.7182818284590451) value 1
6 N8 ^: v9 `5 N* s. C& |  O:select ln(2.7182818284590451) value from dual; 1) N1 V8 B% m" c- o0 G8 R* y1 D0 d
  8.取10为底对数, c3 a* \+ g4 K6 I
  S:select log10(10) value 1
' J: x  C: q, v) Z" _, s, j  O:select log(10,10) value from dual; 1) @( y3 s6 U! \/ e, j1 I
  9.取平方+ W) y  j9 w/ |  L6 M& f
  S:select SQUARE(4) value 16. Z% D( z- j) l6 x& Z
  O:select power(4,2) value from dual 168 T" V7 ]/ T" ]. |( @
  10.取平方根* t1 Q; @# R% V# R9 S( Z# m
  S:select SQRT(4) value 2( D3 G  H8 Z2 x: U2 ^8 t

+ U) c- M. J# M/ `4 `: n; V  O:select SQRT(4) value from dual 2
回复

使用道具 举报

 楼主| 发表于 2012-8-4 14:06:20 | 显示全部楼层

Oracle技术:Oracle和SQLServer常用函数对比分析(1)

</p>  11.求任意数为底的幂
- h) R( h# \$ o0 u! h) _$ s1 |! `; U  S:select power(3,4) value 816 Y! |7 O& X+ X
  O:select power(3,4) value from dual 81
& E5 M' H: K- y# z' ~" w  12.取随机数
5 {8 p& m# i8 \  S:select rand() value
  X( R5 `6 v4 v5 y" e) P* F8 Q% F" y  O:select sys.dbms_random.value(0,1) value from dual;/ a- b; Z' S/ ]
  13.取符号
: [, }$ V  }1 D  S:select sign(-8) value -1, c6 l% L9 |. Y  ?5 S4 {0 r
  O:select sign(-8) value from dual -1
0 t8 ^$ z, R* L  14.圆周率
; X* h# e/ P) S  S:SELECT PI() value 3.1415926535897931
2 h5 H- l9 u+ W) j  O:不知道8 [1 I9 N/ E7 C' @& c$ z
  15.sin,cos,tan 参数都以弧度为单位4 J; i! l( D, f; ]
  例如:select sin(PI()/2) value 得到1(SQLServer)
" J+ [5 B* `0 [0 c* G  16.Asin,Acos,Atan,Atan2 返回弧度
+ F5 O3 {6 o0 {) c% j/ B  17.弧度角度互换(SQLServer,Oracle不知道)0 z, h8 W+ y: ?# G2 k* A) K+ _. s0 ]
  DEGREES:弧度-〉角度
5 z9 m1 B: N: v* m4 a. |  RADIANS:角度-〉弧度! V+ I7 v  m2 t7 W; ?; _; y; A. P; g
  数值间比较
/ f& j& m) w; d1 U$ V: ~4 G  18. 求集合最大值
6 W' ^* Y" c  A4 T6 M  S:select max(value) value from
# P- b2 _$ W9 q' a, m5 m  (select 1 value
5 N3 `0 L3 [+ r7 K  d8 c- T  union
1 ~8 R7 f) `: c0 O& c" S: I1 D2 E  select -2 value
9 i, I- J; u0 X9 |; u0 Y/ Z  union
* u6 E  W) c% i' D4 y; }  select 4 value, j+ }' E5 ~5 q) m0 s6 i
  union
  f& \+ g1 m# o, j  select 3 value)a
1 }  n- v% D  A! `
% n; D) u# x3 c$ B+ I+ i1 ?. d  O:select greatest(1,-2,4,3) value from dual
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 14:06:21 | 显示全部楼层

Oracle技术:Oracle和SQLServer常用函数对比分析(1)

</p>  19. 求集合最小值- p: y; ^" K& u' Y
  S:select min(value) value from2 P& D1 n8 F; D) y1 x/ P) L
  (select 1 value
, b0 Z/ Y$ c- j  union1 P# ~% i2 k2 o% i4 \6 t9 d
  select -2 value3 j0 F4 H& G+ E" L. e! u
  union6 _5 W6 a$ J3 [5 H/ ]
  select 4 value0 b$ c, |- M, z; ^0 ^- P
  union
8 n+ j$ O+ A6 M  s: u/ Q  select 3 value)a
2 q+ y0 z( W" z+ F% E) D) N  O:select least(1,-2,4,3) value from dual% K/ }' u! G. j1 M  B  u3 Y9 ?
  20.如何处理null值(F2中的null以10代替)
% G2 I9 b; C4 l  S:select F1,IsNull(F2,10) value from Tbl
) U  {2 ^( _& _$ y  O:select F1,nvl(F2,10) value from Tbl
5 E/ h' {1 R6 t  21.求字符序号- `: \8 @4 @; ^* H
  S:select ascii('a') value! i! D0 I0 `0 t3 h/ e
  O:select ascii('a') value from dual2 [* d2 j' s" c0 \
  22.从序号求字符
4 s$ O/ }  |5 L: @" z- G) h% |: C  S:select char(97) value: Q% }2 i8 B% D3 }
  O:select chr(97) value from dual3 p4 c$ Q  r  H
  23.连接0 @2 S& q+ d. Z4 F
  S:select '11'+'22'+'33' value
! h1 |* N7 ~( H; o- z8 S8 a  O:select CONCAT('11','22')  33 value from dual
) x3 M+ T' f+ m' _9 @, B9 }  23.子串位置 --返回3( n$ W& g3 d& m' `$ q* w& i
  S:select CHARINDEX('s','sdsq',2) value
) r+ Y: c* ~' u, t  O:select INSTR('sdsq','s',2) value from dual0 P- Z4 l0 v& u* [! G7 ~- ~2 _+ J5 c
  23.模糊子串的位置 --返回2,参数去掉中间%则返回7
# p' b6 @  n6 E7 m/ W  S:select patindex('%d%q%','sdsfasdqe') value, ^; \" `  ^0 _! _2 T* k2 a" K5 j3 z
  O:oracle没发现,但是instr可以通过第四个参数控制出现次数
% H& N+ ]9 C/ t! l# @# `  select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6$ k. q4 F/ X+ o9 N9 V9 {
  24.求子串; Z( }& u' r! [6 T+ E
  S:select substring('abcd',2,2) value
+ V  J' o; P$ t2 z; \  O:select substr('abcd',2,2) value from dual
! s5 L, G# Q% S  25.子串代替 返回aijklmnef% t' n! L% H; a* S5 ^+ t
  S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value
' j/ ~6 w: M. l4 g* n5 u  O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-18 00:48 , Processed in 0.322826 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表