好难,能否在程序中实现,就不直接在数据库中实现了. & UP
解决方案 »
- 求高手优化这条sql语句
- 新人咨询,误删除oracle oradata 目录下所有文件
- 请教大家:如何在存储过程中创建,SELECT,INSERT,然后再DROP掉这个表呢?
- 求sql语句(比较难)
- Oracle数据库推荐使用什么字符集?我的Linux系统中的字符集是zh_CN.UTF-8
- 请教复杂SQL语句??谢谢
- 在spl中创建表和在管理器中有什么区别吗?
- 如何取出上个星期的日期
- 开战了,就没人回答问题了? ?
- 急!登录SQL*PLUS时错误 ORA-12203:TNS:无法处理服务名???
- 本地数据库 忘了SID,不知道该怎么才能找到.
- 请问哪有<<oracle9i dba基础Ⅰ引论学习指南>>电子书下载
参考:
SQL > select job,ename from emp;
JOB ENAME
--------- ----------
CLERK SMITH
SALESMAN ALLEN
SALESMAN WARD
MANAGER JONES
SALESMAN MARTIN
MANAGER BLAKE
MANAGER CLARK
ANALYST SCOTT
PRESIDENT KING
SALESMAN TURNER
CLERK ADAMS
JOB ENAME
--------- ----------
CLERK JAMES
ANALYST FORD
CLERK MILLER
已选择14行。
SQL > create or replace function f_ename(jobno in varchar2)
2 return varchar2 is
3
4 str_return varchar2(200);
5 cursor c_ename(v_jobno varchar2) is select ename from emp where job=v_jobno;
6 begin
7 for str_temp in c_ename(jobno) loop
8 str_return:=str_return | |str_temp.ename;
9 end loop;
10 return str_return;
11 end;
12 /
函数已创建。
SQL > select f_ename(job) from (
2 select distinct job from emp);
F_ENAME(JOB)
---------------------------------------
SCOTT FORD
SMITH ADAMS JAMES MILLER
JONES BLAKE CLARK
KING
ALLEN WARD MARTIN TURNER
SQL >
加上job列:
SQL > select job,f_ename(job) from (
2 select distinct job from emp);
JOB F_ENAME(JOB)
-------------------------------------------------------
ANALYST SCOTT FORD
CLERK SMITH ADAMS JAMES MILLER
MANAGER JONES BLAKE CLARK
PRESIDENT KING
SALESMAN ALLEN WARD MARTIN TURNER