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
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言