易截截图软件、单文件、免安装、纯绿色、仅160KB

一条SQL语句,关于字符分割关联多条记录的问题

 原文传送门:http://topic.csdn.net/u/20091010/14/FC7737C1-D60B-43F1-A8B5-A9EEF2DE4426.html
假如现在有两张表:
1.表stuinfo
sid sname subs
1  jack  |1|2|
2  marry |1|4|
3  tom  |3|
2.表subinfo
subid  subname
1      physics
2      maths
3      biology
4      geography
我想把stuinfo的subs字段按|字符分开,然后匹配subinfo的subid,取subname的值,匹配到多个的话就用逗号隔开。
简而言之我想得到的结果如下:
sid  sname subname
1    jack  physics,maths
2    marry physics,geography
3    tom  biology
希望各位大侠能帮忙设计一下SQL语句,谢谢了!
Oracle 10g以上版本
select a.sid,a.sname,wm_concat(b.subname) subname
from stuinfo a,subinfo b
where instr(a.subs,'|'||b.subid(+)||'|')>0
group by a.sid,a.sname
9i的
 select sid,sname,substr(max(sys_connect_by_path(subname,',')),2) subname
from (
select a.sid,a.sname,b.subname,
row_number()over(partition by a.sid order by rownum)rn
from stuinfo a,subinfo b
where instr(a.subs,'|'||b.subid(+)||'|')>0)
connect by prior rn=rn-1 and prior sid=sid
start with rn=1
group by sid,sname


相关文档:

怎样使用SQL语句更新行累计列值

 
表:TABLEA
客户编号 应收金额   收款金额 
1001       100        80         
1001       200       180&nb ......

PB 数据库连接以及sql语句运行信息返回代码解释大全


如果一个 SQL 语句发生了错误,那么 sqlca.sqlcode 将是非零值。
如果 sqlca.sqlcode 小于 0 那么就是发生了某种严重的错误,象数据库定义与查询定义不一致等.
如果大于 0 则是通常的错误,象表不包括所要求的行等.
sqlca.sqlcode == 0,成功
sqlca.sqlcode == -1 失败     (获取具体失败信息 ......

SQL聚集索引和非聚集索引


微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)……
  (一)深入浅出理解索引结构
  实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称 ......

Sqlserver与access数据库sql语法十大差异

世事洞明皆学问,人情练达即文章。做ASP时,最常用的数据库即Sqlserver与Access数据库莫属了!
但使用会经常发现很多SQL执行的问题。这里整理出之间的差异,做个十大差异的总结。
ACCESS结构简单容易处理,而且也能满足多数的网站程序要求,也是初学者的试牛刀。
ACCESS是小型数据库,既然是小型就有他根本的局限性:
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号