2012年8月29日 星期三

REGEXP切割字串


SQL> with test as 
  2  (select 'ABC,DEF,GHI,JKL,MNO' str from dual 
  3  ) 
  select regexp_substr (str, '[^,]+', 1, rownum) split 
  5    from test 
  connect by level <= length (regexp_replace (str, '[^,]+'))  + 1
  7  / 
SPLIT
---------------------------------------------------------------------
ABC
DEF
GHI
JKL
MNO




參考
http://nuijten.blogspot.tw/2009/07/splitting-comma-delimited-string-regexp.html

http://www.oradev.com/regular_expressions_sql_oracle.jsp

2012年8月19日 星期日

透過Chrome安裝JavaScript指令

只要在執行檔的後面多加下面的指令
再重新跑剛剛下載的JS檔案,就可以直接安裝了

 --enable-easy-off-store-extension-install


參考:
http://blog.noob.tw/chrome-web-store-only

2012年8月2日 星期四

用select寫出迴圈的效果


之前看到別人的程式用了 commect by rownum < 100的寫法
覺得很漂亮,可以直接產生有迴圈的效果
而且在SQL裡面,用join的效能會比跑迴圈好很多
所以後來有一些本來要跑迴圈的,就用這個方法去執行

SELECT ROWNUM N FROM DUAL CONNECT BY ROWNUM < 100


附加切割字串:
--字符串split的壹種方法
SELECT DBMS_LOB.SUBSTR(REGEXP_SUBSTR('ABC,DEF,GGG,1,2,3,4,5', '[^,]+', 1, X.N)) AS PLAYER_GUID
  FROM DUAL A, (SELECT ROWNUM N FROM DUAL CONNECT BY ROWNUM < 100) X
  這裏利用了函數 REGEXP_SUBSTR和CONNECT BY
  其中ROWNUM < 100 會連接限制SPLIT的次數 '[^,]+'為SPLIT拆分的正則表達式,這裏為【,】逗號
  上面SQL語句結果是:
  ABC
  DEF
  GGG
  1
  2
  3
  4
  5

 補充:

SELECT REGEXP_SUBSTR('Q,C,P', '[^,]+', 1, ROWNUM) PREFIX FROM DUAL CONNECT BY LEVEL <= LENGTH(REGEXP_SUBSTR('Q,C,P', '[^,]+')) + 1)
執行結果
Q
C
P

2012年7月8日 星期日

[保險]複保險

「複保險」,是指要保人以同一保險利益、同一保險事故,與數個保險公司(保險人)分別訂立數個保險契約。


http://www.lawtw.com/article.php?template=article_content&area=free_browse&parent_path=,1,1573,&job_id=104801&article_category_id=1578&article_id=45189




依據保險法第38條規定:「善意之複保險,其保險金額之總額超過保險標的之價值者,除另有約定外,各保險人對於保險標的之全部價值,僅就其所保金額負比例分擔之責;但賠償總額,不得超過保險標的之價值。」


以例子來看,若某甲以房屋向A保險人投保400萬,B保險人投保600萬,房屋實際價值800萬,則A保險人的保險責任為50萬〔=100*(400/800)= 50〕,B保險人的保險人青任為75萬〔=100*(600/800)=75〕;若發生火災,該投保標的標物損失100萬,
則A應負責賠償40萬〔=100*50/(50+75)= 40〕,B應賠償60萬〔=100*75/(50+75)= 60〕。http://fund.bot.com.tw/z/glossary/glexp_4380.djhtm


保險法規
http://www.honesty.com.tw/htm/info/ins-law.htm

2012年7月5日 星期四

[SQL] GROUP BY VS DISTINCT

Distinct 會等於或比快 Group by ,快的話在於,distinct的欄位剛好用到key



If you don't, then use DISTINCT.
GROUP BY in MySQL sorts results. You can even do:
SELECT u.profession FROM users u GROUP BY u.profession DESC
and get your professions sorted in DESC order.
DISTINCT creates a temporary table and uses it for storing duplicates. GROUP BY does the same, but sortes the distinct results afterwards.
So
SELECT DISTINCT u.profession FROM users u
is faster, if you don't have an index on profession.


http://stackoverflow.com/questions/581521/whats-faster-select-distinct-or-group-by-in-mysql

2012年7月4日 星期三

[保險]同險累計

同險,指的是同一個標的物,在不同的保險公司,保了相同的險,共保多少保額
目的是為了避免,有心人士在不同保險公司保相同的險,詐領保險金

火險的話,會以地址來看
旅平險,會以人來看