oracle用逗號分隔符分割的字段,轉換中文說明

2021-07-25 19:26:50 字數 875 閱讀 4365

經常碰到某些字段使用逗號等分隔符分割的配置,批量轉換成中文說明比較麻煩。目前想到使用正規表示式匹配,總體思路如下

先由一行用正規表示式提取分割成多行。

再用參數列查詢中文名

再合成一行

—引數中文說明表

select id,name from tab_mb

id name

501 很好

502 一般好

503 相當好

—測試資料

select 『501,502,503』 as source_string from dual

with t1 as

(select 『501,502,503』 as source_string from dual),

t2 as

(select regexp_substr(source_string, 『[^,]+』, 1, rownum) need_string

from t1

connect by rownum <=

length(source_string) - length(replace(source_string, 『,』, 」)) + 1),

t3 as

(select need_string,

(select name from tab_mb h where a.need_string = h.id) need_string_name

from t2 a)

select to_char(wmsys.wm_concat(need_string_name)) as source_2_need from t3

結果輸出

source_2_need

很好,一般好,相當好

SQL Like中的逗號分隔符

在與資料庫互動的過程中,我們經常需要把一串id組成的字串當作引數傳給儲存過程獲取資料。很多時候我們希望把這個字串轉成集合以方便用於in操作。有兩種方式可以方便地把這個以某種符號分隔的id字串轉成臨時表。方式一 通過charindex和substring。create function func sp...

awk按照多個分隔符進行分割

我們知道awk可以進行類似於cut之類的操作,如乙個檔案data如下 zhc 123 zhang hongchangfirst 99 zhang hongchang 100 zhang 如果我們 awk f data 會列印出 zhchongchangfirst hongchang 但是如果我想根據...

C 讀取以逗號為分隔符的數值

思想 全部讀到乙個字串裡,遇到 就換成空格,然後用這個字串構造乙個stringstream,用 讀到陣列裡。分為istream和ostringstream.1 std string name zeta 2 int age 27 34 ostringstream os 5 os name age 6 ...