2010年12月7日 星期二

2010年8月5日 星期四

2010-07-25 08.56.20

巧遇 Reach 電動版,也聽了主人解說功能特性,長知識

2010年7月27日 星期二

oracle 日期計算


1日期運算 
2 
31. 更改日期顯示的format 
4 ex. 
5 ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD';    
6 階段作業已被更改    
7           
8 select sysdate from dual;    
9           
10 SYSDATE    
11 ----------    
12 2007/09/20    
13           
14 --只對目前session有效,一個 connect 視為一個 session 
15 
162. 日期 + 數值 
17 ex. 
18 select sysdate + 10 from dual; 
19  
20 SYSDATE+10 
21 ---------- 
22 01-OCT-07  
23        
243. 日期 - 數值 
25 ex. 
26 select sysdate - 10 from dual; 
27 
28 SYSDATE-10 
29 ---------- 
30 11-SEP-07 
31 
324. 日期相減得到日期差 
33 ex. 
34 select sysdate - to_date('20070901','yyyymmdd') aa from dual; 
35  
36           AA 
37 ------------- 
38   20.4508218   
39  
40 --◎ 包含時間,所以有小數 
41 --◎ 可做日期欄位的計算 
42  
43 select trunc(sysdate - to_date('20070901','yyyymmdd')) aa from dual; 
44  
45        AA 
46 ---------- 
47        20 
48 --使用trunc取整數,得到日期 
49 
505. 日期相減得到小時差 
51 ex. 
52 select trunc((sysdate - to_date('20070901','yyyymmdd'))*24) aa from dual; 
53 
54         AA 
55 ---------- 
56        490 
57 
586. 日期相減得到分鐘差 
59 ex. 
60 select trunc((sysdate - to_date('20070901','yyyymmdd'))*24*60) aa from dual; 
61  
62       AA 
63 --------- 
64     29459 
65 
667. 日期相減得到秒數差 
67 ex. 
68 select trunc((sysdate - to_date('20070901','yyyymmdd'))*24*60*60) aa from dual; 
69 
70        AA 
71 ---------- 
72    1767606 
73 
748. 日期 + n小時 
75 ex. 
76 select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') aa from dual; 
77  
78 AA 
79 -------------------- 
80 2007/09/21 11:03:47  --系統時間 
81  
82 select to_char(sysdate+2/24,'YYYY/MM/DD HH24:MI:SS') aa from dual; 
83 
84 AA 
85 -------------------- 
86 2007/09/21 13:03:47  --加2小時(理論值) 
87 
889. 日期 + n分鐘  
89 ex. 
90 select to_char(sysdate+10/1440,'YYYY/MM/DD HH24:MI:SS') aa from dual; 
91 
92 AA 
93 -------------------- 
94 2007/09/21 11:13:47  --加10分鐘(理論值) 
95 
9610. 日期+ n秒鐘 
97 ex. 
98 select to_char(sysdate+10/86400,'YYYY/MM/DD HH24:MI:SS') aa from dual; 
99     
100 AA 
101 -------------------- 
102 2007/09/21 11:13:57  --加10秒鐘(理論值) 

2010年4月27日 星期二

Oracle 取排行榜

WITH qa AS
     (SELECT '國文' cid, 60 ca, TRUNC (SYSDATE) cb
        FROM DUAL
      UNION
      SELECT '國文' cid, 100 ca, TRUNC (SYSDATE) + 1 cb
        FROM DUAL
      UNION
      SELECT '國文' cid, 60 ca, TRUNC (SYSDATE) + 3 cb
        FROM DUAL
      UNION
      SELECT '國文' cid, 100 ca, TRUNC (SYSDATE) + 3 cb
        FROM DUAL
      UNION
      SELECT '數學' cid, 40 ca, TRUNC (SYSDATE) + 3 cb
        FROM DUAL
      UNION
      SELECT '數學' cid, 70 ca, TRUNC (SYSDATE) + 2 cb
        FROM DUAL
      UNION
      SELECT '數學' cid, 90 ca, TRUNC (SYSDATE) + 3 cb
        FROM DUAL
        UNION
      SELECT '數學' cid, NULL ca, TRUNC (SYSDATE) + 3 cb
        FROM DUAL),
     qb AS
     (SELECT DENSE_RANK () OVER (PARTITION BY cid ORDER BY ca DESC  NULLS LAST) AS dense_rank_top,
             RANK () OVER (PARTITION BY cid ORDER BY ca DESC  NULLS LAST) AS rank_top,
             MAX(CA) KEEP (DENSE_RANK LAST ORDER BY CA  NULLS LAST) OVER (PARTITION BY CID) "Highest" ,
             MIN(ca) KEEP (DENSE_RANK FIRST ORDER BY ca  NULLS LAST) OVER (PARTITION BY cid) "Lowest",qa.*
        FROM qa)
SELECT *
  FROM qb



DENSE_RANK_TOP RANK_TOP Highest Lowest CID CA CB
1 1 100 60 國文 100 2010/4/29
1 1 100 60 國文 100 2010/5/1
2 3 100 60 國文 60 2010/4/28
2 3 100 60 國文 60 2010/5/1
1 1 40 數學 90 2010/5/1
2 2 40 數學 70 2010/4/30
3 3 40 數學 40 2010/5/1
4 4 40 數學 2010/5/1

同行資料列欄位取最大值與最小值

GREATEST ( expr_list )
LEAST ( expr_list ) 




SQL> select LEAST(1,2,3,5,4,7,6) from dual;
 
LEAST(1,2,3,5,4,7,6)
--------------------




SQL> select GREATEST(1,10,3,5,5,1,6) from dual;
 
GREATEST(1,10,3,5,5,1,6)
------------------------
                      10

2010年2月22日 星期一

中華郵政考試

http://www.tabf.org.tw/tw/ptc_Post/bothistory.asp
 
 
file:///D:/Jim/Downloads/Post_1.doc
考古題
一、為服務應試人員,特彙整96年及97年郵政從業人員甄試同類科筆試科目試題及選擇題解答,僅供參考(如因法規修訂致試題不適用或解答有誤時,請自行更正)。
二、99年甄試各職階題型如下:(詳請參閱簡章第11頁)
(一)營運職及專業職(一),普通科目為單選題,專業科目為非選擇題。(註:非選擇題題型依各專業類科科目性質而定,包括申論題、問(簡)答題、填充題、計算題、圖表實作等)
(二)專業職(二)普通科目及專業科目均為單選題。 
 
96年試題與解答  97年試題與解答
欲閱讀PDF版本請下載安裝Adobe Reader 8
中華郵政公司99年從業人員甄試 您是第 00634700 位訪客

Oracle 9 xmlagg() 函數將多筆資料合併在同一列上


WITH qa AS
     (SELECT 'Row1' drow, 'user1' emp, 100 num  FROM DUAL
      UNION ALL
      SELECT 'Row2' drow, 'user1' emp, 90 num   FROM DUAL
      UNION ALL
      SELECT 'Row3' drow, 'user1' emp, 80 num   FROM DUAL)
SELECT   emp,
         RTRIM (XMLAGG (XMLELEMENT ("User", num || ',') order by num ).EXTRACT ('//text()'),',') combine
    FROM qa
GROUP BY emp;