oracle行轉列函式
1 需求
在實際開發中,行轉列函式可以把列值以逗號分隔起來,並顯示成一行。現要求利用一條sql語句獲得表emp中所有員工姓名,且要求在前台頁面中作為乙個字串出現,在這個字串中員工之間的姓名用逗號分隔開。
2 程式
create or replace function row2col(sqlstring varchar2) return varchar2 as
begin
declare type cu_type is ref cursor;
cur_name cu_type;
tmp_name varchar2(20);
names varchar2(500);
begin
open cur_name for sqlstring;
fetch cur_name into tmp_name;
while cur_name%found loop
names := names || tmp_name || ',';
fetch cur_name into tmp_name;
end loop;
return rtrim(names, ',');
end;
end row2col;
3 呼叫
select row2col('select ename from emp') result from dual;
這裡result即為內查詢得到臨時表的別名,也可以去掉
select row2col('select ename from emp') from dual;
4 執行結果
result
smith,allen,ward,jones,martin,blake,clark,scott,king,turner,adams,james,ford,mil
ler5 注意
引數sqlstring必須是乙個返回單列的sql語句,否則,此函式將丟擲錯誤。
擷取逗號隔開的內容,並依次處理
今天看到儲存過程裡有boss寫的一段處理邏輯,也算是與之前幾篇筆記類似的功能,記錄一下,說不定以後會用到 for r i in 1.100 loop r start instrb r bl order nos,if r start 0 then r bl order no r bl order no...
SQL匯出txt檔案欄位用逗號 ,隔開
最近客戶要匯出部分交易明細,格式如下的txt,通過查詢具體sql如下,可以用dbvisualizer或pl sql匯出。主要是sql拼接方法 匯出形如 04,832005 20141231 234915 23000,1 04,832027 20141231 235427 560 1 的txt檔案,具...
MySQL 模糊查詢某字段用逗號隔開
1.查詢pnum欄位中包含3或者9的記錄 select from test where find in set 3 pnum or find in set 9 pnum select from test where concat pnum,regexp 0 9 3 9 0 9 2.cover欄位為 ...