oracle 常用函式

netwant發表於2011-04-28
oracle 函式[@more@]

1. ASCII 返回與指定的字元對應的十進位制數;
SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32

2. CHR
給出整數,返回對應的字元;
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
-- -
A
3. CONCAT
連線兩個字串;
SQL> select concat(‘010-‘,’88888888’)||’
23’ 高乾競電話 from dual; 高乾競電話
----------------
010-88888888
23
4. INITCAP
返回字串並將字串的第一個字母變為大寫;
SQL> select initcap(smith) upp from dual;
UPP
-----
Smith

5.INSTR(C1,C2,I,J)
在一個字串中搜尋指定的字元,返回發現指定的字元的位置;
C1
被搜尋的字串
C2
希望搜尋的字串
I
搜尋的開始位置,預設為1
J
出現的位置,預設為1
SQL> select instr(oracle traning,ra,1,2) instring from dual;
INSTRING
---------
9

6.LENGTH
返回字串的長度;
SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;
NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL))
------ ------------ ---------------- ------------ --------- --------------------
高乾競 3 北京市海錠區 6 9999.99 7

7.LOWER
返回字串,並將所有的字元小寫
SQL> select lower(AaBbCcDd)AaBbCcDd from dual;
AABBCCDD
--------
aabbccdd

8.UPPER
返回字串,並將所有的字元大寫
SQL> select upper(AaBbCcDd) upper from dual;
UPPER
--------
AABBCCDD

9.RPAD
LPAD(貼上字元)
RPAD
在列的右邊貼上字元
LPAD
在列的左邊貼上字元
SQL> select lpad(rpad(gao,10,*),17,*)from dual;
LPAD(RPAD(GAO,1
-----------------
*******gao*******
不夠字元則用*來填滿

10.LTRIM
RTRIM
LTRIM
刪除左邊出現的字串
RTRIM
刪除右邊出現的字串
SQL> select ltrim(rtrim( gao qian jing , ), ) from dual;
LTRIM(RTRIM(
-------------
gao qian jing

11.SUBSTR(string,start,count)
取子字串,start開始,count
SQL> select substr(13088888888,3,8) from dual;
SUBSTR(
--------
08888888

12.REPLACE(string,s1,s2)
string
希望被替換的字元或變數
s1
被替換的字串
s2
要替換的字串
SQL> select replace(he love you,he,i) from dual;
REPLACE(H
----------
i love you

13.SOUNDEX
返回一個與給定的字串讀音相同的字串
SQL> create table table1(xm varchar(8));
SQL> insert into table1 values(weather);
SQL> insert into table1 values(wether);
SQL> insert into table1 values(gao);
SQL> select xm from table1 where soundex(xm)=soundex(weather);
XM
--------
weather
wether
• 14.TRIM(s from string)
LEADING
剪掉前面的字元
TRAILING
剪掉後面的字元 如果不指定,預設為空格符
15.ABS
返回指定值的絕對值
SQL> select abs(100),abs(-100) from dual;
ABS(100) ABS(-100)
--------- ---------
100 100

16.ACOS
給出反餘弦的值
SQL> select acos(-1) from dual;
ACOS(-1)
---------
3.1415927

17.ASIN
給出反正弦的值
SQL> select asin(0.5) from dual;
ASIN(0.5)
---------
.52359878

18.ATAN
返回一個數字的反正切值
SQL> select atan(1) from dual;
ATAN(1)
---------
.78539816

19.CEIL
返回大於或等於給出數字的最小整數
SQL> select ceil(3.1415927) from dual;
CEIL(3.1415927)
---------------
4

20.COS
返回一個給定數字的餘弦
SQL> select cos(-3.1415927) from dual;
COS(-3.1415927)
---------------
-1

21.COSH 返回一個數字反餘弦值
SQL> select cosh(20) from dual;
COSH(20)
---------
242582598

22.EXP
返回一個數字en次方根
SQL> select exp(2),exp(1) from dual;
EXP(2) EXP(1)
--------- ---------
7.3890561 2.7182818

23.FLOOR
對給定的數字取整數
SQL> select floor(2345.67) from dual;
FLOOR(2345.67)
--------------
2345

24.LN
返回一個數字的對數值
SQL> select ln(1),ln(2),ln(2.7182818) from dual;
LN(1) LN(2) LN(2.7182818)
--------- --------- -------------
0 .69314718 .99999999

25.LOG(n1,n2)
返回一個以n1為底n2的對數
SQL> select log(2,1),log(2,4) from dual;
LOG(2,1) LOG(2,4)
--------- ---------
0 2

26.MOD(n1,n2)
返回一個n1除以n2的餘數
SQL> select mod(10,3),mod(3,3),mod(2,3) from dual;
MOD(10,3) MOD(3,3) MOD(2,3)
--------- --------- ---------
1 0 2

27.POWER
返回n1n2次方根
SQL> select power(2,10),power(3,3) from dual;
POWER(2,10) POWER(3,3)
----------- ----------
1024 27

28.ROUND
TRUNC 按照指定的精度進行舍入
SQL> select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;
ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)
----------- ------------ ----------- ------------
56 -55 55 -55

29.SIGN
取數字n的符號,大於0返回1,小於0返回-1,等於0返回0
SQL> select sign(123),sign(-100),sign(0) from dual;
SIGN(123) SIGN(-100) SIGN(0)
--------- ---------- ---------
1 -1 0

30.SIN
返回一個數字的正弦值
SQL> select sin(1.57079) from dual;
SIN(1.57079)
------------
1
• 31.SIGH
返回雙曲正弦的值
SQL> select sin(20),sinh(20) from dual;
SIN(20) SINH(20)
--------- ---------
.91294525 242582598

32.SQRT
返回數字n的根
SQL> select sqrt(64),sqrt(10) from dual;
SQRT(64) SQRT(10)
--------- ---------
8 3.1622777

33.TAN
返回數字的正切值
SQL> select tan(20),tan(10) from dual;
TAN(20) TAN(10)
--------- ---------
2.2371609 .64836083

34.TANH
返回數字n的雙曲正切值
SQL> select tanh(20),tan(20) from dual;
TANH(20) TAN(20)
--------- ---------
1 2.2371609

35.TRUNC
按照指定的精度擷取一個數
SQL> select trunc(124.1666,-2) trunc1,trunc(124.16666,2) from dual;
TRUNC1 TRUNC(124.16666,2)
--------- ------------------
100 124.16

36.ADD_MONTHS
增加或減去月份
SQL> select to_char(add_months(to_date(199912,yyyymm),2),yyyymm) from dual;
TO_CHA
------
200002
SQL> select to_char(add_months(to_date(199912,yyyymm),-2),yyyymm) from dual;
TO_CHA
------
199910

37.LAST_DAY
返回日期的最後一天
SQL> select to_char(sysdate,yyyy.mm.dd),to_char((sysdate)+1,yyyy.mm.dd) from dual;
TO_CHAR(SY TO_CHAR((S
---------- ----------
2004.05.09 2004.05.10
SQL> select last_day(sysdate) from dual;
LAST_DAY(S
----------
31-5
-04

38.MONTHS_BETWEEN(date2,date1)
給出date2-date1的月份
SQL> select months_between(19-12
-1999,19-3-1999) mon_between from dual;
MON_BETWEEN
-----------
9
SQL>selectmonths_between(to_date(2000.05.20,yyyy.mm.dd),to_date(2005.05.20,yyyy.mm.dd)) mon_betw from dual;
MON_BETW
---------
-60

39.NEW_TIME(date,this,that)
給出在this時區=other時區的日期和時間
SQL> select to_char(sysdate,yyyy.mm.dd hh24:mi:ss) bj_time,to_char(new_time
2 (sysdate,PDT,GMT),yyyy.mm.dd hh24:mi:ss) los_angles from dual;
BJ_TIME LOS_ANGLES
------------------- -------------------
2004.05.09 11:05:32 2004.05.09 18:05:32

40.NEXT_DAY(date,day)
給出日期date和星期x之後計算下一個星期的日期
SQL> select next_day('18-5
-2001','星期五') next_day from dual;
NEXT_DAY
----------
25-5
-01

41.SYSDATE
用來得到系統的當前日期
SQL> select to_char(sysdate,dd-mm-yyyy day) from dual;
TO_CHAR(SYSDATE,
-----------------
09-05-2004
星期日
trunc(date,fmt)
按照給出的要求將日期截斷,如果fmt=mi表示保留分,截斷秒
SQL> select to_char(trunc(sysdate,hh),yyyy.mm.dd hh24:mi:ss) hh,
2 to_char(trunc(sysdate,mi),yyyy.mm.dd hh24:mi:ss) hhmm from dual;
HH HHMM
------------------- -------------------
2004.05.09 11:00:00 2004.05.09 11:17:00

42.CHARTOROWID
將字元資料型別轉換為ROWID型別
SQL> select rowid,rowidtochar(rowid),ename from scott.emp;
ROWID ROWIDTOCHAR(ROWID) ENAME
------------------ ------------------ ----------
AAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH
AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN
AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD
AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONES

43.CONVERT(c,dset,sset)
將源字串 sset從一個語言字符集轉換到另一個目的dset字符集
SQL> select convert(strutz,we8hp,f7dec) "conversion" from dual;
conver
------
strutz

44.HEXTORAW
將一個十六進位制構成的字串轉換為二進位制

45.RAWTOHEXT
將一個二進位制構成的字串轉換為十六進位制

46.ROWIDTOCHAR
ROWID資料型別轉換為字元型別

47.TO_CHAR(date,format)
SQL> select to_char(sysdate,yyyy/mm/dd hh24:mi:ss) from dual;
TO_CHAR(SYSDATE,YY
-------------------
2004/05/09 21:14:41
• 48.TO_DATE(string,format)
將字串轉化為ORACLE中的一個日期

49.TO_MULTI_BYTE
將字串中的單位元組字元轉化為多位元組字元
SQL> select to_multi_byte(
) from dual;
TO
--


50.TO_NUMBER
將給出的字元轉換為數字
SQL> select to_number(1999) year from dual;
YEAR
---------
1999

51.BFILENAME(dir,file) 指定一個外部二進位制檔案
SQL>insert into file_tb1 values(bfilename(lob_dir1,image1.gif));

52.CONVERT(x,desc,source)
x欄位或變數的源source轉換為desc
SQL> select sid,serial#,username,decode(command,
2 0,none,
3 2,insert,
4 3,
5 select,
6 6,update,
7 7,delete,
8 8,drop,
9 other) cmd from v$session where type!=background;
SID SERIAL# USERNAME CMD
--------- --------- ------------------------------ ------
1 1 none
2 1 none
3 1 none
4 1 none
5 1 none
6 1 none
7 1275 none
8 1275 none
9 20 GAO select
10 40 GAO none

53.DUMP(s,fmt,start,length)
DUMP
函式以fmt指定的內部數字格式返回一個VARCHAR2型別的值
SQL> col global_name for a30
SQL> col dump_string for a50
SQL> set lin 200
SQL> select global_name,dump(global_name,1017,8,5) dump_string from global_name;
GLOBAL_NAME DUMP_STRING
------------------------------ --------------------------------------------------
ORACLE.WORLD Typ=1 Len=12 CharacterSet=ZHS16GBK: W,O,R,L,D

54.EMPTY_BLOB()
EMPTY_CLOB() 這兩個函式都是用來對大資料型別欄位進行初始化操作的函式

55.GREATEST
返回一組表示式中的最大值,即比較字元的編碼大小.
SQL> select greatest(AA,AB,AC) from dual;
GR
--
AC
SQL> select greatest(
,,) from dual;
GR
--


56.LEAST
返回一組表示式中的最小值
SQL> select least(
,,) from dual;
LE
--


57.UID
返回標識當前使用者的唯一整數
SQL> show user
USER
"GAO"
SQL> select username,user_id from dba_users where user_id=uid;
USERNAME USER_ID
------------------------------ ---------
GAO 25

58.USER
返回當前使用者的名字
SQL> select user from dual;
USER
------------------------------
GAO

59.USEREVN
返回當前使用者環境的資訊,opt可以是:
ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE
ISDBA
檢視當前使用者是否是DBA如果是則返回true
SQL> select userenv(isdba) from dual;
USEREN
------
FALSE
SQL> select userenv(isdba) from dual;
USEREN
------
TRUE
SESSION
返回會話標誌
SQL> select userenv(sessionid) from dual;
USERENV(SESSIONID)
--------------------
152
ENTRYID
返回會話人口標誌
SQL> select userenv(entryid) from dual;
USERENV(ENTRYID)
------------------
0
INSTANCE
返回當前INSTANCE的標誌
SQL> select userenv(instance) from dual;
USERENV(INSTANCE)
-------------------
1
LANGUAGE
返回當前環境變數
SQL> select userenv(language) from dual;
USERENV(LANGUAGE)
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
LANG
返回當前環境的語言的縮寫
SQL> select userenv(lang) from dual;
USERENV(LANG)
----------------------------------------------------
ZHS
TERMINAL
返回使用者的終端或機器的標誌
SQL> select userenv(terminal) from dual;
USERENV(TERMINA
----------------
GAO
VSIZE(X)
返回X的大小(位元組)
SQL> select vsize(user),user from dual;
VSIZE(USER) USER
----------- ------------------------------
6 SYSTEM
• 60.AVG(DISTINCT|ALL)
all
表示對所有的值求平均值,distinct只對不同的值求平均值
SQLWKS> create table table3(xm varchar(8),sal number(7,2));
語句已處理。
SQLWKS> insert into table3 values(gao,1111.11);
SQLWKS> insert into table3 values(gao,1111.11);
SQLWKS> insert into table3 values(zhu,5555.55);
SQLWKS> commit;
SQL> select avg(distinct sal) from gao.table3;
AVG(DISTINCTSAL)
----------------
3333.33
SQL> select avg(all sal) from gao.table3;
AVG(ALLSAL)
-----------
2592.59

61.MAX(DISTINCT|ALL)
求最大值,ALL表示對所有的值求最大值,DISTINCT表示對不同的值求最大值,相同的只取一次
SQL> select max(distinct sal) from scott.emp;
MAX(DISTINCTSAL)
----------------
5000

62.MIN(DISTINCT|ALL)
求最小值,ALL表示對所有的值求最小值,DISTINCT表示對不同的值求最小值,相同的只取一次
SQL> select min(all sal) from gao.table3;
MIN(ALLSAL)
-----------
1111.11

63.STDDEV(distinct|all)
求標準差,ALL表示對所有的值求標準差,DISTINCT表示只對不同的值求標準差
SQL> select stddev(sal) from scott.emp;
STDDEV(SAL)
-----------
1182.5032
SQL> select stddev(distinct sal) from scott.emp;
STDDEV(DISTINCTSAL)
-------------------
1229.951

64.VARIANCE(DISTINCT|ALL)
求協方差
SQL> select variance(sal) from scott.emp;
VARIANCE(SAL)
-------------
1398313.9

65.GROUP BY
主要用來對一組數進行統計
SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno;
DEPTNO COUNT(*) SUM(SAL)
--------- --------- ---------
10 3 8750
20 5 10875
30 6 9400

66.HAVING
對分組統計再加限制條件
SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno having count(*)>=5;
DEPTNO COUNT(*) SUM(SAL)
--------- --------- ---------
20 5 10875
30 6 9400
SQL> select deptno,count(*),sum(sal) from scott.emp having count(*)>=5 group by deptno ;
DEPTNO COUNT(*) SUM(SAL)
--------- --------- ---------
20 5 10875
30 6 9400

67.ORDER BY
用於對查詢到的結果進行排序輸出
SQL> select deptno,ename,sal from scott.emp order by deptno,sal desc;
DEPTNO ENAME SAL
--------- ---------- ---------
10 KING 5000
10 CLARK 2450
10 MILLER 1300
20 SCOTT 3000
20 FORD 3000
20 JONES 2975
20 ADAMS 1100
20 SMITH 800
30 BLAKE 2850
30 ALLEN 1600
30 TURNER 1500
30 WARD 1250
30 MARTIN 1250
30 JAMES 950
68. pl/sql
中的case語句
select (case when DUMMY='X' then 0 else 1 end) as flag from dual;
case
的第1種用法:
case col when 'a' then 1
when 'b' then 2
else 0 end
這種用法跟decode一樣沒什麼區別
case
的第2種用法:
case when score <60 then 'd'
when score >=60 and score <70 then 'c'
when score >=70 and score <80 then 'b'
else 'a' end
69.NVL(expr1, expr2)
NVL(expr1, expr2)->expr1
NULL,返回expr2;不為NULL,返回expr1。注意兩者的型別要一致
NVL2 (expr1, expr2, expr3) ->expr1
不為NULL,返回expr2;為NULL,返回expr3expr2expr3型別不同的話,expr3會轉換為expr2的型別
NULLIF (expr1, expr2) ->
相等返回NULL,不等返回expr1
• Oracle
分析函式參考手冊
=============================================
作者: xsb([url]http://xsb.itpub.net)[/url] 發表於:2006.03.01 12:22 分類: DW&BI 出處:http://xsb.itpub.net/post/419/33028
---------------------------------------------------------------
Oracle
8.1.6開始提供分析函式,分析函式用於計算基於組的某種聚合值,它和聚合函式的不同之處是對於每個組返回多行, 而聚合函式對於每個組只返回一行。 常用的分析函式如下所列:
row_number() over(partition by ... order by ...)
rank() over(partition by ... order by ...)
dense_rank() over(partition by ... order by ...)
count() over(partition by ... order by ...)
max() over(partition by ... order by ...)
min() over(partition by ... order by ...)
sum() over(partition by ... order by ...)
avg() over(partition by ... order by ...)
first_value() over(partition by ... order by ...)
last_value() over(partition by ... order by ...)
lag() over(partition by ... order by ...)
lead() over(partition by ... order by ...)

下面例子中使用的表來自Oracle自帶的HR使用者下的表,如果沒有安裝該使用者,可以在SYS使用者下執行
$ORACLE_HOME/demo/schema/human_resources/hr_main.sql
來建立。 除本文內容外,你還可參考:
ROLLUP
CUBE [url]http://xsb.itpub.net/post/419/29159[/url] 分析函式使用例子介紹:[url]http://xsb.itpub.net/post/419/44634[/url] 本文如果未指明,預設是在HR使用者下執行例子。 開窗函式的的理解: 開窗函式指定了分析函式工作的資料視窗大小,這個資料視窗大小可能會隨著行的變化而變化,舉例如下:
over
order by salary 按照salary排序進行累計,order by是個預設的開窗函式
over
partition by deptno)按照部門分割槽
over
order by salary range between 50 preceding and 150 following 每行對應的資料視窗是之前行幅度值不超過50,之後行幅度值不超過150
over
order by salary rows between 50 preceding and 150 following 每行對應的資料視窗是之前50行,之後150
over
order by salary rows between unbounded preceding and unbounded following 每行對應的資料視窗是從第一行到最後一行,等效:
over
order by salary range between unbounded preceding and unbounded following 主要參考資料:《expert one-on-one Tom Kyte Oracle9i SQL Reference》第6
ohwww 2007-3-12 09:19

70AVG 功能描述:用於計算一個組和資料視窗內表示式的平均值。
SAMPLE
:下面的例子中列c_mavg計算員工表中每個員工的平均薪水報告,該平均值由當前員工和與之具有相同經理的前一個和後一個三者的平均數得來;
SELECT manager_id, last_name, hire_date, salary,
AVG(salary) OVER (PARTITION BY manager_id ORDER BY hire_date
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS c_mavg
FROM employees;
MANAGER_ID LAST_NAME HIRE_DATE SALARY C_MAVG
---------- ------------------------- --------- ---------- ----------
100 Kochhar 21-SEP-89 17000 17000
100 De Haan 13-JAN-93 17000 15000
100 Raphaely 07-DEC-94 11000 11966.6667
100 Kaufling 01-MAY-95 7900 10633.3333
100 Hartstein 17-FEB-96 13000 9633.33333
100 Weiss 18-JUL-96 8000 11666.6667
100 Russell 01-OCT-96 14000 11833.3333
71
CORR 功能描述:返回一對錶達式的相關係數,它是如下的縮寫:
COVAR_POP(expr1,expr2)/STDDEV_POP(expr1)*STDDEV_POP(expr2))
從統計上講,相關性是變數之間關聯的強度,變數之間的關聯意味著在某種程度 上一個變數的值可由其它的值進行預測。透過返回一個-1~1之間的一個數, 相關 係數給出了關聯的強度,0表示不相關。
SAMPLE
:下例返回1998年月銷售收入和月單位銷售的關係的累積係數(本例在SH使用者下執行)
SELECT t.calendar_month_number,
CORR (SUM(s.amount_sold), SUM(s.quantity_sold))
OVER (ORDER BY t.calendar_month_number) as CUM_CORR
FROM sales s, times t
WHERE s.time_id = t.time_id AND calendar_year = 1998
GROUP BY t.calendar_month_number
ORDER BY t.calendar_month_number;
CALENDAR_MONTH_NUMBER CUM_CORR
--------------------- ----------
1
2 1
3 .994309382
4 .852040875
5 .846652204
6 .871250628
7 .910029803
8 .917556399
9 .920154356
10 .86720251
11 .844864765
12 .903542662

72
COVAR_POP 功能描述:返回一對錶達式的總體協方差。
SAMPLE
:下例CUM_COVP返回定價和最小產品價格的累積總體協方差
SELECT product_id, supplier_id,
COVAR_POP(list_price, min_price)
OVER (ORDER BY product_id, supplier_id) AS CUM_COVP,
COVAR_SAMP(list_price, min_price)
OVER (ORDER BY product_id, supplier_id) AS CUM_COVS
FROM product_information p
WHERE category_id = 29
ORDER BY product_id, supplier_id;
PRODUCT_ID SUPPLIER_ID CUM_COVP CUM_COVS
---------- ----------- ---------- ----------
1774 103088 0
1775 103087 1473.25 2946.5
1794 103096 1702.77778 2554.16667
1825 103093 1926.25 2568.33333
2004 103086 1591.4 1989.25
2005 103086 1512.5 1815
2416 103088 1475.97959 1721.97619
.
.

73
COVAR_SAMP 功能描述:返回一對錶達式的樣本協方差
SAMPLE
:下例CUM_COVS返回定價和最小產品價格的累積樣本協方差
SELECT product_id, supplier_id,
COVAR_POP(list_price, min_price)
OVER (ORDER BY product_id, supplier_id) AS CUM_COVP,
COVAR_SAMP(list_price, min_price)
OVER (ORDER BY product_id, supplier_id) AS CUM_COVS
FROM product_information p
WHERE category_id = 29
ORDER BY product_id, supplier_id;
PRODUCT_ID SUPPLIER_ID CUM_COVP CUM_COVS
---------- ----------- ---------- ----------
1774 103088 0
1775 103087 1473.25 2946.5
1794 103096 1702.77778 2554.16667
1825 103093 1926.25 2568.33333
2004 103086 1591.4 1989.25
2005 103086 1512.5 1815
2416 103088 1475.97959 1721.97619
• 74
COUNT 功能描述:對一組內發生的事情進行累積計數,如果指定*或一些非空常數,count將對所有行計數,如果指定一個表示式,count 返回表示式非空賦值的計數,當有相同值出現時,這些相等的值都會被納入被計算的值;可以使用DISTINCT來記錄去掉一組中完全 相同的資料後出現的行數。
SAMPLE
:下面例子中計算每個員工在按薪水排序中當前行附近薪水在[n-50,n+150]之間的行數,n表示當前行的薪水 例如,Philtanker的薪水2200,排在他之前的行中薪水大於等於2200-50的有1行,排在他之後的行中薪水小於等於2200150的行 沒有,所以count計數值cnt32(包括自己當前行);cnt2值相當於小於等於當前行的

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/309902/viewspace-1049174/,如需轉載,請註明出處,否則將追究法律責任。

相關文章