a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 160|回复: 2

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

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
数学函数   1.绝对值& |( l; t$ d0 M) O. y
  S:select abs(-1) value
; j0 |0 {' @& T5 K0 l# Z  O:select abs(-1) value from dual
6 v) Q: p/ _/ D8 @  2.取整(大): }( T$ H- Y( B8 w
  S:select ceiling(-1.001) value* w9 z% ]5 B+ ^7 ^' J
  O:select ceil(-1.001) value from dual
( G7 R7 a/ F' b4 Q  3.取整(小)
3 H9 J$ U* P  n$ \. p; B  S:select floor(-1.001) value: D5 \) r% m1 A1 s3 ?
  O:select floor(-1.001) value from dual3 ^& Q7 o# @% h8 v, O8 {' [
  4.取整(截取)1 P1 M+ V( C6 d- s
  S:select cast(-1.002 as int) value
9 K) n: Y4 P8 E* R. {& }1 I7 j- V  O:select trunc(-1.002) value from dual& _& T$ r; `9 A8 L
  5.四舍五入- A- q7 \% B7 g9 p2 a
  S:select round(1.23456,4) value 1.23460
' Z( L! ]* t* E4 W6 D  O:select round(1.23456,4) value from dual 1.2346
4 ]; |, U* y. O2 }' A  6.e为底的幂
& [7 Z, \- o9 m2 Q  S:select Exp(1) value 2.7182818284590451# A  N  X: G: `. e* f
  O:select Exp(1) value from dual 2.71828182, n9 v: f; m, l4 g$ e) P
  7.取e为底的对数1 L& {' I+ v0 z% M/ g4 _' \/ j% ^
  S:select log(2.7182818284590451) value 1/ Z( [, ~% h4 z
  O:select ln(2.7182818284590451) value from dual; 1# w6 \: N) U4 y6 Q" h  S
  8.取10为底对数, E/ y2 c' P2 I  O7 w' H
  S:select log10(10) value 1! Z( P/ i# y" A& O; [7 ?
  O:select log(10,10) value from dual; 19 m1 W8 v$ c9 T/ Z5 O
  9.取平方$ O1 Z' i! o8 J) j- K# `3 c+ C) ?1 {
  S:select SQUARE(4) value 16
9 {+ f% g! @" q- `1 S* z3 E  O:select power(4,2) value from dual 161 F* y2 C/ O+ e7 D+ Y7 K* D
  10.取平方根9 O3 H! {' b% c* O( z
  S:select SQRT(4) value 28 x& p3 ~% w( [0 p1 ~

7 d5 C* E( e( H, X" W0 B$ q; z  O:select SQRT(4) value from dual 2
回复

使用道具 举报

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

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

</p>  11.求任意数为底的幂
, N+ u" b& m3 c2 W: K  S:select power(3,4) value 81- `( x: \- `1 \) G1 L0 @6 a
  O:select power(3,4) value from dual 81
& ?+ I& U. d) E9 e- c  12.取随机数6 Q, P. K. E6 I( Z1 v' s: T
  S:select rand() value
  [0 o3 g6 |, i: k# z. N  O:select sys.dbms_random.value(0,1) value from dual;* _4 f1 u0 z0 \* a+ H( f$ Y4 S
  13.取符号
' E2 N6 T! y7 \  `2 H. _  d  S:select sign(-8) value -1" t( ]* V/ `3 Q# N3 g& A& q+ W0 t
  O:select sign(-8) value from dual -1
. T: G. |2 h% U: z, h) M  14.圆周率
; @8 C% g8 M1 C7 Q, S6 I6 b  S:SELECT PI() value 3.1415926535897931, n2 i$ p% ^8 u& y8 j4 B4 i
  O:不知道
1 v+ U3 u, Q; u& U4 z  15.sin,cos,tan 参数都以弧度为单位
, _% m' u# g/ F' ]& Y  例如:select sin(PI()/2) value 得到1(SQLServer)1 w, I* l: |5 P: N* f6 j  n$ T# @- K
  16.Asin,Acos,Atan,Atan2 返回弧度6 E$ l. F8 E& E2 P  B. V
  17.弧度角度互换(SQLServer,Oracle不知道)
4 v$ W/ T( e: j& f$ D7 X7 t: x8 l7 }  DEGREES:弧度-〉角度* g# K, o' M# i
  RADIANS:角度-〉弧度1 S, @# F7 [3 r( \( R$ {7 r
  数值间比较
2 P7 x- [- y: B0 K* D) P( |  18. 求集合最大值0 O1 e9 z9 p" J7 K# z+ B. v# ~
  S:select max(value) value from
! {+ p; P( t" r2 I: x( w! d  (select 1 value
% w( T! S% y/ u# `  \) z  union
- ^8 ]; x! u' Z7 }3 N' c3 K  select -2 value
; j, F4 I: ?: c6 ^  union" F+ X. I' V2 ]( Q; S0 Q
  select 4 value3 j# c; i' m( [2 r& A! L& }
  union
: D7 V, S6 N' _7 F' o* u: P/ i  select 3 value)a
! L/ H. N  ^/ v# I8 K9 f& X
. d' }; g# H$ F4 S, \& f) t  O:select greatest(1,-2,4,3) value from dual
回复 支持 反对

使用道具 举报

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

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

</p>  19. 求集合最小值: f4 m0 S! q! Q0 C: _- D7 Y. h
  S:select min(value) value from3 w8 g5 o1 t; u3 M- A8 \
  (select 1 value
5 f, z8 Z. E9 j  union; C/ i# J. O; b2 o, W
  select -2 value$ Q7 U- x6 T5 Z8 D$ h" n
  union
& D9 z; `6 h9 G4 Q4 t3 z  select 4 value
, l$ N- S" V9 E' ?8 ]% ^. i+ q  union( f- [, u- Z5 n8 F) e' x
  select 3 value)a
/ L: w1 B  z+ C0 W% i  O:select least(1,-2,4,3) value from dual
- L4 g  B4 j  Z, [( B1 B" }  20.如何处理null值(F2中的null以10代替)
" ]. l. F' s( N# R  S:select F1,IsNull(F2,10) value from Tbl
. H9 ?; h( X2 s7 S* J! y& B  O:select F1,nvl(F2,10) value from Tbl# i9 w5 G" V. a# b- y1 L. R0 i
  21.求字符序号2 S. _9 s2 q0 ?
  S:select ascii('a') value9 W- h! E: ]+ L+ r
  O:select ascii('a') value from dual
7 ?! b+ O5 e4 i, g# `+ [  22.从序号求字符
2 M  d4 }' ?5 s. V  S:select char(97) value
& n' D+ ~+ B/ l3 h1 \  O:select chr(97) value from dual
( P4 o5 b1 c' P4 g: Y2 D  23.连接! V( I3 f8 W/ b3 `( ~/ X1 u* H
  S:select '11'+'22'+'33' value
6 H% E0 \% w' m9 T9 Y  O:select CONCAT('11','22')  33 value from dual
4 M/ p, _  [4 F# p! r  23.子串位置 --返回3
$ J: x/ v" a( N( O! B  S:select CHARINDEX('s','sdsq',2) value
& F  ~* X" x' ~  O:select INSTR('sdsq','s',2) value from dual  I. A6 H3 E/ j. W
  23.模糊子串的位置 --返回2,参数去掉中间%则返回7: \, e2 T) B1 O" }* P
  S:select patindex('%d%q%','sdsfasdqe') value& t& C! c7 o+ d9 Q4 B
  O:oracle没发现,但是instr可以通过第四个参数控制出现次数) G( {; q7 l. G+ l( X
  select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6" U( i( j5 b/ Z( r
  24.求子串
! ~4 i+ q; C  Y+ ?4 q+ T  S:select substring('abcd',2,2) value
9 m* }8 j0 ], F( B  O:select substr('abcd',2,2) value from dual
& ~+ n) z- c3 X5 O  25.子串代替 返回aijklmnef
0 l3 |4 @# w% C" F' |8 b0 V6 e2 E0 V  S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value9 m9 @8 \% ~* f
  O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 21:43 , Processed in 0.245011 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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