乙個需求:
需要把一行裡 『,』 隔開的資料一行轉換成多行:
轉換成:
sql 如下:
select id,
nvl(substr(mm,instr(mm,',',1,lev)+1,instr(mm,',',1,lev+1)-instr(mm,',',1,lev)-1),' ') mm
from (
select id, lev, ',' || mm || ',' mm
from (
select 1 id, '張三李四' mm from dual
union all
select 2 id, '張三,李四' mm from dual
union all
select 3 id, '張,三李四' mm from dual
union all
select 4 id, '張三李,四' mm from dual
union all
select 5 id, '張三李四,' mm from dual
) a,(select level lev
from dual
connect by level <=
(select max(length(mm) - length(replace(mm, ','))) + 1
from (
select 1 id, '張三李四' mm from dual
union all
select 2 id, '張三,李四' mm from dual
union all
select 3 id, '張,三李四' mm from dual
union all
select 4 id, '張三李,四' mm from dual
union all
select 5 id, '張三李四,' mm from dual
))) b)
where substr(mm,instr(mm,',',1,lev)+1,instr(mm,',',1,lev+1)-instr(mm,',',1,lev)-1) is not null
order by id ;
SQL將一列轉換成一行,並將這一行形成新的列
sql部分 查詢出來要轉換的資料 select name from dbo.base pay type where is enabled 1 資料如圖 2.將查詢到的資料轉換成行,以逗號隔開,以 包裹 select stuff select name from select name from db...
Shell Linux 一行 多命令
要實現在一行執行多條linux命令,分三種情況 1 舉例 lpr tmp t2 rm tmp t2 第2條命令只有在第1條命令成功執行之後才執行。根據命令產生的退出碼判斷是否執行成功 0成功,非0失敗 2 舉例 cp tmp t2 tmp t2.bak rm tmp t2 只有 前的命令 cp tm...
sed把前一行內容合併到下一行
例如 現在網上的 都通過專門的格式化,帶有行號,如下 02 注 proxy temp path和proxy cache path指定的路徑必須在同一分割槽 03proxy temp path data0 proxy temp dir 04 設定web快取區名稱為cache one,記憶體快取空間大小...