ORACLE字符串拼接


--有三種方法可以實現
--方法一、使用wmsys.wm_concat  Oracle版本要求10g及以上
--方法二、使用sys_connect_by_path  Oracle版本在9i及以下
--方法三、使用自定義函數

--我來給你寫給自定義函數實現的例子
--查看員工表中部門爲10的員工姓名

--自定義函數實現
create or replace function my_concat(p_deptno in integer)
return varchar2       --記住:參數和返回值裏的數據類型都不用定義長度   
is  
result varchar2(4000);    --定義變量,記住Oracle中定義變量不需要   
begin  
       for temp_cursor in (select ename from emp where deptno=p_deptno) loop     --此處在遊標FOR循環中使用查詢對應部門的所有員工   
           result :=result || temp_cursor.ename || ',';           
       end loop;   
       result := rtrim(result,',');  --去掉最後一個空格
       return result;   
end;  


 
SELECT DISTINCT deptno,my_concat(deptno) name FROM emp WHERE deptno=10;

結果:
DEPTNO   NAME
-----------------------
30       ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES,BLACK,MAXTON
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章