select?*
創新互聯建站專注于企業網絡營銷推廣、網站重做改版、涉縣網站定制設計、自適應品牌網站建設、H5高端網站建設、成都做商城網站、集團公司官網建設、成都外貿網站建設公司、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為涉縣等各大城市提供網站開發制作服務。
from?(select?trim(regexp_substr(A,?'[^,]+',?1,?IDX))?ftype
from?tablename?a,?(select?level?IDX?from?dual?connect?by?level??1000)?b
where?a.A?=?'1101309030222121')?c
where?c.ftype?is?not?null
上面的SQL比較麻煩,但一條SQL可以出來,你可以試一下
另外,你可以寫一下函數進行拆分,把相關的邏輯放到函數體里面,看起來比較簡潔
希望可以幫到你
加個序號,然后自連接就行了,例子:(自己造的數據,表、字段自己替換)
--數據模擬
WITH?TMP?AS
(SELECT?CASE
WHEN?MOD(LEVEL,?2)?=?1?THEN
'Logged?In'
ELSE
'Logged?Out'
END?AS?TYPE,?SYSDATE?+?LEVEL?/?24?AS?TIME,?'4001'?AS?ID
FROM???DUAL
CONNECT?BY?LEVEL?=?10
UNION?ALL
SELECT?CASE
WHEN?MOD(LEVEL,?2)?=?1?THEN
'Logged?In'
ELSE
'Logged?Out'
END?AS?TYPE,?SYSDATE?+?LEVEL??AS?TIME,?'5001'?AS?ID
FROM???DUAL
CONNECT?BY?LEVEL?=?10),
--添加一個序號?
TMP1?AS
(SELECT?T.*,?ROW_NUMBER()?OVER(PARTITION?BY?ID,?TYPE?ORDER?BY?TIME)?RN
FROM???TMP?T)
--自連接
SELECT?A.TYPE,?A.TIME,?B.TYPE,?B.TIME,?A.ID
FROM???TMP1?A
LEFT???JOIN?TMP1?B
ON?????A.TYPE?!=?B.TYPE?AND
A.ID?=?B.ID?AND
A.RN?=?B.RN
WHERE??A.TYPE?=?'Logged?In'
1.前言:通過使用FineBI進行“點地圖”方式來展現數據。
2.遇到的問題:原始表 經緯度 是一個字段保存,比如 xy列 中某行值為“130.111111,33.999999”。
3.解決的方法:通過 xy列 中’,‘逗號并使用函數substr()和函數instr() 處理后效果圖和SQL示例如下
4.附注:
substr函數的用法 :
取得字符串中指定起始位置和長度的字符串 ,默認是從起始位置到結束的子串。
substr( string, start_position, [ length ] )? ? 即:? substr('目標字符串',開始位置,長度)
instr函數的用法 :
格式一:instr( string1, string2 )? ?即:? instr(源字符串, 目標字符串),本案例是使用此格式。
格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] )? ?即:instr(源字符串, 目標字符串, 起始位置, 匹配序號)
解析:string2 的值要在string1中查找,是從start_position給出的數值(即:位置)開始在string1檢索,檢索第nth_appearance(幾)次出現string2。
instr是一個非常好用的字符串處理函數,幾乎所有的字符串分隔都用到此函數。
oracle 中可以用connect by把字符串按都好分割:
比如定義字符串:
pv_no_list :='23,34,45,56';
SELECT DISTINCT REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) as "token"
FROM DUAL
CONNECT BY REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) IS NOT NULL
order by 1
返回結果:
TOKEN
23
34
45
56
上面的語句是按照下劃線來劃分為三段,需要注意的oracle中substr函數,是從第i位開始截取長度為j的字段
本文標題:oracle怎么拆分列 oracle按照分隔符拆分行
路徑分享:http://vcdvsql.cn/article30/hehgpo.html
成都網站建設公司_創新互聯,為您提供動態網站、自適應網站、營銷型網站建設、網站內鏈、服務器托管、云服務器
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯