表B有个字段CODE里面是 C1,C2,C3但B表里对应有C1代表"yyyy",C2代表 'kkkk'code_id memo
C1 yyyy
C2 kkkk
C3 hhhh想通来一语句实现:
===
CODE memo
C1,C2,C3 yyyy,kkkk,hhhh
C1 yyyy
C2 kkkk
C3 hhhh想通来一语句实现:
===
CODE memo
C1,C2,C3 yyyy,kkkk,hhhh
解决方案 »
- 有关plsql的grant语句。如下:在sqlplus中
- SQL语句如何查询分区键
- 删除表中数据的问题
- 请推荐一个合适的Oracle版本学习
- 请高手帮忙解决这个奇怪问题,多谢!!
- oracle如何匹配字符的问题?
- where 后条件匹配是从前向后还是从后向前?
- 动态执行表不可访问,本会话的自动统计被禁止。什么意思啊?
- OEM最简单一问
- ORA-01033: ORACLE initialization or shutdown in progress
- 请问pl/sql中在where in()子句里怎么使用字符串变量来传递查询条件?
- (警告:已创建的触发程序出现编译错误.)我修改了许多次了还是提示这句话!
C1 yyyy
C2 kkkk
C3 hhhh想通来一语句实现:
===
CODE memo
C1,C2,C3 yyyy,kkkk,hhhh
但是你的问题属于行转列
这在oracle里一般不能用一句SQL语句实现,只能写程序
我知道SQL SERVER可以
select @var=@var+field from table;oracle在这方面得改进改进了,实在是太多的人提出类似的问题了。。
-- ----
C1 4444
C2 5555
C3 6666SQL> select * from b;CODE
--------------------
C1,C3SQL> create or replace function get_code(t_code varchar2) return varchar2 is
2 p_out varchar2(100);
3 cursor cur1 is select re from a where instr(t_code,code_id)>0;
4 begin
5 for cur2 in cur1 loop
6 if p_out is null then
7 p_out:=cur2.re;
8 else
9 p_out:=p_out||','||cur2.re;
10 end if;
11 end loop;
12 return p_out;
13 end;
14 /函数已创建。SQL> select code,get_code(code) from b;CODE GET_CODE(CODE)
-------------------- ----------------------------------------
C1,C3 4444,6666