| 
最近有 一些面試中的問題,總結(jié)起來看,一是關(guān)于怎樣找出和去除重復(fù)數(shù)據(jù),這在另一個帖子利已有詳細介紹。二是關(guān)于找出某一列里最大或最小的前幾個,或是大于或小于某一個值(最大值或平均值)的數(shù)據(jù)。針對這種情況,再此做一個介紹。 1:找出公司里收入最高的前三名員工: SQL> select rownum, last_name, salary
  2  from (select last_name, salary 3         from s_emp  4         order by salary desc)  5         where rownum<=3; 
    ROWNUM LAST_NAME              SALARY   ---------- ------------------------- ----------
 1 Velasquez                                 47508 G
 2 Ropeburn                                 2945l6C.G
 3 Nguyen                                      2897.5 QUVoW
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  =9F}j\
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  J‘
 注意:請大家分析一下一下語句為什么不對:dOb{RO
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  bt7]c0
 SQL> select rownum, last_name, salary
 2  from s_empg:m4>
 3  where rownum<=3.ny
 4  order by salary desc;tUJ
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  pqGE\[
 ROWNUM LAST_NAME                     SALARY!7.
 ---------- ------------------------- ----------Y
 1 Velasquez                       4750YHJ#V
 3 Nagayama                        2660%p8~
 2 Ngao                            2000Bb;
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  @
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  g#|E
 2: 找出表中的某一行或某幾行的數(shù)據(jù):k9
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  mM
 (1):找出表中第三行數(shù)據(jù):P
 用以下方法是不行的,因為rownum后面至可以用<或<=號,不可以用=,>號和其它的比較符號。+h">^
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  Vr$$]h
 SQL> select * from s_emp{
 2  where rownum=3;O_{
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  /;B
 no rows selectedp(
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  1"B
 SQL> select * from s_emp">7
 2  where rownum between 3 and 5;Dky!m
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  qS
 no rows selectedm^)0
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  H_&
 正確的方法如下:,~w[KF
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  z7@>Me
 SQL> l/(
 1  select last_name, salary(?\
 2  from (select rownum a, b.*ZVwI!
 3        from s_emp b)N
 4* where a=3DI
 SQL> /Cu
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  `t
 LAST_NAME                     SALARYd$#>
 ------------------------- ----------,/N?UK
 Nagayama                        2660w
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  .$CX
 (2):找出第三行到第五行之間的數(shù)據(jù):L
 SQL> l]M]~H
 1  select last_name, salaryH
 2  from (select rownum a, b.*CD5w+
 3        from s_emp b)om2
 4* where a between 3 and 5,fQ&,=
 SQL> /R4SS
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  O?D7)
 LAST_NAME                     SALARY5‘
 ------------------------- ----------6yd
 Nagayama                        2660@L
 Quick-To-See                    2755>
 Ropeburn                        2945Ni‘=r
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  <Lh_VZ
 3:找出那些工資高于他們所在部門的平均工資的員工。I‘R*u
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  ;7Z
 (1):第一種方法:5acm6S
 SQL> select last_name, dept_id, salary(
 2  from s_emp ag1}+7
 3  where salary>(select avg(salary)S-(
 4                from s_emp2ksQsY
 5                where dept_id=a.dept_id);PZRM
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  WFa=Fa
 LAST_NAME                    DEPT_ID     SALARY_f7
 ------------------------- ---------- ----------3x-v0
 Velasquez                         50       4750r6h*8
 Urguhart                          41       2280yECF*
 Menchu                            42       2375TLoS/‘
 Biri                              43       2090^xJ
 Catchpole                         44       2470ZS,
 Havel                             45     2483.3;R`$_
 Nguyen                            34     2897.5pK\=Q$
 Maduro                            41       2660?OZ_(:
 Nozaki                            42       2280wR
 Schwartz                          45       2090`
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  AtMr
 10 rows selected.loa
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  q8a{
 (2):第二種方法:5AH1
 SQL> l=\]n
 1  select a.last_name, a.salary, a.dept_id, b.avgsal!NZW2d
 2  from s_emp a, (select dept_id, avg(salary) avgsal7P<2H;
 3               from s_emp)(o?
 4               group by dept_id) b(a5
 5  where a.dept_id=b.dept_id-6
 6* and a.salary>b.avgsalZ
 SQL> /‘^NJ
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  7s/
 LAST_NAME                     SALARY    DEPT_ID     AVGSALCX@
 ------------------------- ---------- ---------- ----------j
 Velasquez                       4750         50     3847.5}@7
 Urguhart                        2280         41     2181.5_m
 Menchu                          2375         42 2055.16667ks5
 Biri                            2090         43       1710I/Q
 Catchpole                       2470         44       1995k
 Havel                         2483.3         45     2069.1,H
 Nguyen                        2897.5         34       2204nB
 Maduro                          2660         41     2181.5<&
 Nozaki                          2280         42 2055.1666788W
 Schwartz                        2090         45     2069.1"L$Aht
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  @3`tD~
 10 rows selected.p3Q#b
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  pV[@QT
 4:找出那些工資高于他們所在部門的manager的工資的員工。Y^;‘
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  5z
 SQL> lg!O`?~
 1  select id, last_name, salary, manager_ida
 2  from s_emp ae8wG
 3  where salary>(select salaryb)-r
 4                from s_empflzfJG
 5*               where id=a.manager_id)|/t)yO
 SQL> /{Nwt
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  *^0LJ
 ID LAST_NAME                     SALARY MANAGER_IDCQV
 ---------- ------------------------- ---------- ----------=Il
 6 Urguhart                        2280          2If@
 7 Menchu                          2375          2j:QMG
 8 Biri                            2090          2wjkW.!
 9 Catchpole                       2470          23]
 10 Havel                         2483.3          2f&&MPS
 12 Giljum                          2831          38NT<!
 13 Sedeghi                       2878.5          3_
 14 Nguyen                        2897.5          3b@
 15 Dumas                           2755          3${
 16 Maduro                          2660          6Kg
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  Zu
 10 rows selected.Uk2fN
 
 
 
    
        
            | 第一題:有兩個表分別如下:=Z<表A(varchar(32) NAME,int GRADE)*{
 數(shù)據(jù)::WyN$
 ZHANGSHAN 80 R
 LISI      60N
 WANGWU    84#
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  m]P
 表B(varchar(32) NAME,int AGE)[!
 數(shù)據(jù):Hi)Y:7
 ZHANGSHAN 26 =(
 LISI      24@
 WANGWU    261>
 WUTIAN    26~.yj4
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  X@~~O
 (1)寫SQL語句得到如下查詢結(jié)果:>g1\oj
 NAME      GRADE   AGE     C
 ZHANGSHAN 80      26 q5IV
 LISI      60      24sw
 WANGWU    84      262c. l
 WUTIAN    NULL    26Z]
 疑問:這里的沒有成績的那個人的記錄怎么得到呢?C#~,Q
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  `
 (2)寫SQl語句根據(jù)名字(NAME)相同按年齡(AGE)分組得到不同年齡的人的平均成績,并寫出結(jié)果。f${4\n
 疑問:按照名字相同,WUTIAN這個人沒有成績該不該把他統(tǒng)計在內(nèi)呢?8B<
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  t%#
 (3)還有一問具體數(shù)據(jù)記不清了,比上兩問更怪。y#1\^m
 
 
 
 |   |  
            |   |   |      [這個貼子最后由SunOne在 2003/12/30 04:11pm 編輯]m©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  ;(
 第二題:有一個數(shù)據(jù)庫表dept中有如下數(shù)據(jù):3!|-
 id_no id_namewe#
 1000  S1L&@U
 1001  S2.$]K
 1002  S31?
 1003  S4<q(SlO
 1000  S5p8
 1000  S6gZ~&>=
 1001  S7/
 表中有id_no重復(fù),如id_no為1000的有3條記錄,如id_no為1001的有2條記錄,z-XS
 現(xiàn)在要按照id_no給表建索引,需要刪除id_no重復(fù)了的那些記錄,但不能刪掉所有擁有該id_no的記錄,必需保留一條擁有該id_no的記錄(如id_no為1000的只剩下一條記錄)7
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  (
 (1)請寫出SQl語句(或SQL語句組),查詢所有id_no重復(fù)的記錄。bxt
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  qwZ239
 (2)請寫出SQl語句實現(xiàn)題目要求的結(jié)果。
   
    
        
            |   | 1:©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  SWTSQL> create table ahCu
 2  (name varchar2(32),t
 3  grade int);fHYm
 Table created.j|
 SQL> insert into a_ty5.u
 2  values(‘&a‘,&b);Vk-~\y
 Enter value for a: zhangshantS
 Enter value for b: 80hYTG&
 old   2: values(‘&a‘,&b)7]bgW
 new   2: values(‘zhangshan‘,80)#sQukk
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  )dD>M:
 1 row created.5
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  >ic5
 SQL> /Nb>#
 Enter value for a: lisi|FS|3
 Enter value for b: 60[7s
 old   2: values(‘&a‘,&b)6
 new   2: values(‘lisi‘,60)^s-a
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  hR-Bni
 1 row created.3
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  Cc]
 SQL> /iX@
 Enter value for a: wangwu9J
 Enter value for b: 84rR`
 old   2: values(‘&a‘,&b)I z4Bn
 new   2: values(‘wangwu‘,84)u
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  Cwdw,M
 1 row created.‘&F4H&
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  zU
 SQL> commit;pS#~f
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  R"
 Commit complete.I@b}
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  X#{! 9
 SQL> create table b_t%;R
 2  (name varchar2(32),71
 3  age int);x;SQ^
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  Q+z
 Table created.!M
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  L|
 SQL> insert into b_tJ
 2  values(‘&a‘,&b);UK|‘?]
 Enter value for a: zhangshanZA+X:
 Enter value for b: 26:x`.M(
 old   2: values(‘&a‘,&b)wbi[
 new   2: values(‘zhangshan‘,26)M=A
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  #
 1 row created.6f4
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  *h5
 SQL> /#u
 Enter value for a: lisi18J/-
 Enter value for b: 24fA*
 old   2: values(‘&a‘,&b)8MqSY"
 new   2: values(‘lisi‘,24)Myt6W
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  d"
 1 row created.;2NtAv
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  UPy:Z;
 SQL> /"[u
 Enter value for a: wangwu{|Q3
 Enter value for b: 267Max
 old   2: values(‘&a‘,&b)5+
 new   2: values(‘wangwu‘,26)9tn+{
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  1oT;
 1 row created.Yg
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  j3{M
 SQL> /?G#i
 Enter value for a: wutianz&a
 Enter value for b: 26g
 old   2: values(‘&a‘,&b)3
 new   2: values(‘wutian‘,26)lqP
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  H
 1 row created.XqM
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  |t
 SQL> commit;*x!#v
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  gfh.
 Commit complete.m>:QD
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  Gv*h
 SQL>}rDu#
 SQL> col grade null ‘null‘3"K
 SQL> l71srGP
 1  select b.name, a.grade, b.age5)F<
 2  from a_t a,b_t b-!$YRs
 3* where a.name(+)=b.name\H
 SQL> /q9[
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  Ia-
 NAME                                  GRADE        AGE-n&M
 -------------------------------- ---------- ----------BL
 lisi                                     60         24W
 wangwu                                   84         26477E
 wutian                           null               26[a?EA
 zhangshan                                80         26h~
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  ?!;
 SQL>-#D
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  ?kMGSC
 2:©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  45r&‘a
 SQL> lL
 1  select name, avg(grade), age(sJ7rh
 2  from (select b.name name, a.grade grade, b.age ageNUx3>;
 3  from a_t a,b_t bSJx
 4  where a.name(+)=b.name),5
 5* group by age, nameZU
 SQL> /E
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  Ewhj
 NAME                             AVG(GRADE)        AGE&H
 -------------------------------- ---------- ----------g]<pc&
 lisi                                     60         243
 wangwu                                   84         26!ZOnC
 wutian                                              26Nn
 zhangshan                                80         26f
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  uThcM\
 SWUTIAN這個人沒有成績不把他統(tǒng)計在內(nèi)q)
 3:©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  i-:
 1、當我們想要為一個表創(chuàng)建唯一索引時,如果該表有重復(fù)的記錄,則無法創(chuàng)建成功。 (QJS
 方法原理: )KQ
 1、Oracle中,每一條記錄都有一個rowid,rowid在整個數(shù)據(jù)庫中是唯一的, Gk
 rowid確定了每條記錄是在ORACLE中的哪一個數(shù)據(jù)文件、塊、行上。 yhjK
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  `,
 2、在重復(fù)的記錄中,可能所有列的內(nèi)容都相同,但rowid不會相同,所以只要確定出重復(fù)記錄中 V>)P
 那些具有最大rowid的就可以了,其余全部刪除。 lH
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  k7
 3、以下語句用到了3項技巧:rowid、子查詢、別名。 XNR*
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  ba
 實現(xiàn)方法: /e
 SQL> create table a ( 33
 2 bm char(4), --編碼 <}cU@4
 3 mc varchar2(20) --名稱 =jY;Z
 4 ) ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  g!KM
 5 / ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  {:e[
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  e`e
 表已建立. 1?,.
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  8=Dl9;
 SQL> insert into a values(‘1111‘,‘1111‘); R23g
 SQL> insert into a values(‘1112‘,‘1111‘); #
 SQL> insert into a values(‘1113‘,‘1111‘); i|
 SQL> insert into a values(‘1114‘,‘1111‘); q>V+L
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  }J
 SQL> insert into a select * from a; +i2|@0
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  *T
 插入4個記錄. lIG\^X
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  T
 SQL> commit; EnemB
 SQL> select rowid,bm,mc from a; O7
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  e
 ROWID BM MC :!|j8m
 ------------------ ---- ------- ‘9%EK
 000000D5.0000.0002 1111 1111 h9$-)L
 000000D5.0001.0002 1112 1111 dd
 000000D5.0002.0002 1113 1111 OXC
 000000D5.0003.0002 1114 1111 K7K
 000000D5.0004.0002 1111 1111 #O
 000000D5.0005.0002 1112 1111 Hk
 000000D5.0006.0002 1113 1111 <
 000000D5.0007.0002 1114 1111 iAs Y
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  u
 查詢到8記錄. {9&
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  ||
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  x
 查出重復(fù)記錄 j-H&D
 SQL> select rowid,bm,mc from a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc); $8& X^
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  V‘
 ROWID BM MC w@
 ------------------ ---- -------------------- Z>
 000000D5.0000.0002 1111 1111 DAu8a
 000000D5.0001.0002 1112 1111 sRxcx
 000000D5.0002.0002 1113 1111 ;+<J
 000000D5.0003.0002 1114 1111 WbQN
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  ?| -5
 刪除重復(fù)記錄 $@
 SQL> delete from a a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc); I‘=!c
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  a(S}C
 刪除4個記錄. 8
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  #2B
 SQL> select rowid,bm,mc from a; >i/
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  Wj~cn
 ROWID BM MC dij
 ------------------ ---- -------------------- uWg
 000000D5.0004.0002 1111 1111 HO/0hp
 000000D5.0005.0002 1112 1111 mfc
 000000D5.0006.0002 1113 1111 T$S5aA
 000000D5.0007.0002 1114 1111q
 
 
 |    ===================================================== ProductID  SALE_YEAR   SALES    productID   2001  2002     2003L5WI3001          2001               10           001        10"
 002          2001               15           002        15<
 003          2002               12           003                12         10AT
 003          2003               10`h%@{7
 寫一個SQL或者PL/SQL完成左邊的表變成右邊的表。=
 SQL> CREATE TABLE TEST(PRODUCT_ID NUMBER ,SALE_YEAR VARCHAR2(20),SALES NUMBER) ;Rxcs©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  R
 Table created.HQ/
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  RQ
 SQL> INSERT INTO TEST valueS(‘&1‘,‘&2‘,‘&3‘);v
 Enter value for 1: 001l7g[
 Enter value for 2: 2001(!Zj
 Enter value for 3: 10AXREC
 old   1: INSERT INTO TEST valueS(‘&1‘,‘&2‘,‘&3‘)S\_
 new   1: INSERT INTO TEST valueS(‘001‘,‘2001‘,‘10‘)A{]KYG
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  6,De%
 1 row created.73.
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  ]LHQ
 SQL> INSERT INTO TEST valueS(‘&1‘,‘&2‘,‘&3‘);d|z&
 Enter value for 1: 002w3
 Enter value for 2: 2001Y
 Enter value for 3: 15i
 old   1: INSERT INTO TEST valueS(‘&1‘,‘&2‘,‘&3‘)Fj
 new   1: INSERT INTO TEST valueS(‘002‘,‘2001‘,‘15‘)^ZawQJ
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  :
 1 row created.:
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  k0=O7
 SQL> INSERT INTO TEST valueS(‘&1‘,‘&2‘,‘&3‘);N
 Enter value for 1: 003e
 Enter value for 2: 2002g-P
 Enter value for 3: 12G^RV
 old   1: INSERT INTO TEST valueS(‘&1‘,‘&2‘,‘&3‘)jp/I0
 new   1: INSERT INTO TEST valueS(‘003‘,‘2002‘,‘12‘)Y
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  )
 1 row created.[1UqH
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  lKrk
 SQL> INSERT INTO TEST valueS(‘&1‘,‘&2‘,‘&3‘);<(n
 Enter value for 1: 003OI
 Enter value for 2: 2003y<
 Enter value for 3: 10l )@d
 old   1: INSERT INTO TEST valueS(‘&1‘,‘&2‘,‘&3‘)S`v>1
 new   1: INSERT INTO TEST valueS(‘003‘,‘2003‘,‘10‘)Bjax
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  .dvn
 1 row created.kov/,
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  /j
 SQL> COMMIT;:[Po1
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  Yor{B
 Commit complete.`XH`h0
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  -2#en$
 SQL> SELECT * FROM TEST;-C
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  [
 PRODUCT_ID SALE_YEAR                 SALESyk
 ---------- -------------------- ----------
 1 2001                                   10U
 2 2001                                   15;o
 3 2002                                   12rN\ou
 3 2003                                   10eI%/
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  T0[WI"
 SQL> SELECT PRODUCT_ID,:B
 2         DECODE(SALE_YEAR,2001,SUM(SALES)) "2001",B\
 3         DECODE(SALE_YEAR,2002,SUM(SALES)) "2002",cp79
 4        DECODE(SALE_YEAR,2003,SUM(SALES)) "2003"C
 5        FROM TEST,‘Yd[Z
 6      GROUP BY PRODUCT_ID,SALE_YEA;<rjT
 GROUP BY PRODUCT_ID,SALE_YEAd
 *Ri
 ERROR at line 6:y
 ORA-00904: "SALE_YEA": invalid identifierr".
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  !0!%
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  ~1
 SQL> SELECT PRODUCT_ID,Ss
 2         SUM(DECODE(SALE_YEAR,2001,SALES)) "2001",JQ+XNx
 3         SUM(DECODE(SALE_YEAR,2002,SALES)) "2002",{Sp‘c
 4        SUM(DECODE(SALE_YEAR,2003,SALES)) "2003"C
 5        FROM TEST[ 6
 6      GROUP BY PRODUCT_ID;2:6R1x
 ©達內(nèi)科技論壇 -- 達內(nèi)科技論壇  `
 PRODUCT_ID       2001       2002       20031
 ---------- ---------- ---------- ----------Tq
 1              10r)<D
 2              158^o
 3                             12         10NY?
 
 
 分頁模板:
 SELECT B.* FROM78 (SELECT A.*,ROWNUM ROW_NUM FROMj (SELECT * FROM [表名] WHERE [選擇條件]% ORDER BY [排序方式] ) A where rownum <= [頁號*每頁記錄數(shù)] )B© WHERE ROW_NUM >= [(頁號-1)*每頁記錄數(shù)+1] |