直接Select出来是不可能的
怎么用存储过程来写?
或者有别的方法?
怎么用存储过程来写?
或者有别的方法?
解决方案 »
- ORA-01940: cannot drop a user that is currently connected 错误
- OracleDb10g_home1TNListenner 服务启动后又停怎么回事?
- 索引与title='标题'效率那个高
- 安装了Oracle10g后是不是要配置?
- 新学习Oracle,如何创建一个简单的存储过程
- 请问,在pc上用oci必须装oracle吗?不装的话, 怎么能够解决TNS 服务器名的问题?
- 求助:SQL语句的模糊查询??
- VARIANT VT_DECIMAL to double???
- 在unix下如何用c和oracle8.17相连,特急望各位老大帮忙!
- 问题求助!谢谢!
- 想请问一下sqlplus在没有用到监听器的时候是怎样与本地数据库连接的,,,,
- 高分请教 一句sql
这句话指的是表B中的记录吗?
指的是表A
能否写出来?
(
select ID,S,SS,BB1 bbn,CC1 ccn from a union all
select id,s,ss,bb2,cc2 from a union all
select id,s,ss,bb3,cc3 from a union all
select id,s,ss,bb4,cc4 from a
) a,b
where a.id=b.id试试这个还差多少,对你查询的结果不是很理解。最好解释一下是怎么得来的。
from 表A a,表B b
where a.ID = b.ID
uinon all
select a.ID aa,'' ab,'' ac,'' ad,a.BB1 ae,a.CC1 af,b.BB ag,b.CC ah
from 表A a,表B b
where a.ID = b.ID
uinon all
select a.ID aa,'' ab,'' ac,'' ad,a.BB2 ae,a.CC2 af,'/' ag,'/' ah
from 表A a,表B b
where a.ID = b.ID
uinon all
select a.ID aa,'' ab,'' ac,'' ad,a.BB3 ae,a.CC3 af,'/' ag,'/' ah
from 表A a,表B b
where a.ID = b.ID
uinon all
select a.ID aa,'' ab,'' ac,'' ad,a.BB4 ae,a.CC4 af,'/' ag,'/' ah
from 表A a,表B b
where a.ID = b.ID
order by aa;
回复人: ORARichard(没钱的日子......) ( ) 信誉:100 2005-01-31 20:49:00 得分: 0
select a.id,a.s,b.num,a.bbn,a.ccn,b.bb,b.cc from
(
select ID,S,SS,BB1 bbn,CC1 ccn from a union all
select id,s,ss,bb2,cc2 from a union all
select id,s,ss,bb3,cc3 from a union all
select id,s,ss,bb4,cc4 from a
) a,b
where a.id=b.id试试这个还差多少,对你查询的结果不是很理解。最好解释一下是怎么得来的。
上面有些地方说得有误
更新如下:
表A中的BB、CC(实际是没有BB、CC的,表B中的BB/CC和表A的不是同一个)分为BB1 CC1 BB2 CC2 BB3 CC3 BB4 CC4
BB、CC和BB1 CC1 BB2 CC2 BB3 CC3 BB4 CC4的逻辑关系是:
BB=BB1+BB2+BB3+BB4
CC=CC1+CC2+CC3+CC4
表A中的一个ID写成5条record
其中第一条record只有a.ID a.S a.SS b.Num四个字段有值,a.BB1,a.BB2和b.BB,b.CC的位置为空。
第二到第四条record,a.ID a.S a.SS b.Num四个字段的位置为空,a.BB1,a.BB2和b.BB,b.CC的位置
有值
第6条到第10条record为第二个ID...
如此类推最后变成如下:
a.ID a.S a.SS b.Num a.BB(n) a.CC(n) b.BB b.CC
a.ID a.S a.SS b.Num 空 空 空 空 -->第一行
空 空 空 空 a.BB1 a.CC1 b.BB b.CC -->第二行
空 空 空 空 a.BB2 a.CC2 b.BB b.CC -->第三行
空 空 空 空 a.BB3 a.CC3 b.BB b.CC -->第四行
空 空 空 空 a.BB4 a.CC4 b.BB b.CC -->第五行谢谢楼上各位的回复
乱了a.ID a.S a.SS b.Num a.BB a.CC b.BB b.CC
a.ID a.S a.SS b.Num 空 空 空 空 -->第一行
空 空 空 空 a.BB1 a.CC1 b.BB b.CC -->第二行
空 空 空 空 a.BB2 a.CC2 b.BB b.CC -->第三行
空 空 空 空 a.BB3 a.CC3 b.BB b.CC -->第四行
空 空 空 空 a.BB4 a.CC4 b.BB b.CC -->第五行
而且是Oracle自动做
然后spool出成txt文件
1。用union,可以添加一个索引的列,来表示自己从什么地方来。用来排序。就是我下面用的indexsort这个字段。(修改了 wupangzi(无本之木) ( )的句子。)select a.ID aa,1 indexsort,a.S ab,a.SS ac,b.Num ad,'' ae,'' af,'' ag,'' ah
from 表A a,表B b
where a.ID = b.ID
uinon all
select a.ID aa,2 indexsort,'' ab,'' ac,'' ad,a.BB1 ae,a.CC1 af,b.BB ag,b.CC ah
from 表A a,表B b
where a.ID = b.ID
uinon all
select a.ID aa,3 indexsort,'' ab,'' ac,'' ad,a.BB2 ae,a.CC2 af,'/' ag,'/' ah
from 表A a,表B b
where a.ID = b.ID
uinon all
select a.ID aa,4 indexsort,'' ab,'' ac,'' ad,a.BB3 ae,a.CC3 af,'/' ag,'/' ah
from 表A a,表B b
where a.ID = b.ID
uinon all
select a.ID aa,5 indexsort,'' ab,'' ac,'' ad,a.BB4 ae,a.CC4 af,'/' ag,'/' ah
from 表A a,表B b
where a.ID = b.ID
order by aa,indexsort;
(因为没有环境,只是写了一个大概,可能有错误。只是提供一个我的想法。)2。可以做成一个PL/SQL,那样简单的多,传入一个ID,得到你想要的5行记录。外面循环。
修改一下你需要选择的字段,一样可以完成的。赫赫。
用来排序用。
写法,我上面已经写了。
请问能否具体说说“索引的列”怎么回事?
怎么写?
谢谢。
--
就是说行号啦。 第一行:索引的列(indexsort)=1...依次类推。