有2张表一个人员表person 一个信息表message
例如 person message
id name personIds
0001, 'a' 0001,0002
0002, 'b' 0002,0004
0003 'c' 0001,0002,0004
0004 'd' 0003
message有个字段 personIds存的是person的多个id 是 ,分隔的
我想求下每个person在message出现的次数结果 如
id number
0001 2
0002 3
0003 1
0004 2
我之前是用 instr(message.personIds,person.id) 做条件在count写的 速度太慢了
又好点的方法不?
例如 person message
id name personIds
0001, 'a' 0001,0002
0002, 'b' 0002,0004
0003 'c' 0001,0002,0004
0004 'd' 0003
message有个字段 personIds存的是person的多个id 是 ,分隔的
我想求下每个person在message出现的次数结果 如
id number
0001 2
0002 3
0003 1
0004 2
我之前是用 instr(message.personIds,person.id) 做条件在count写的 速度太慢了
又好点的方法不?
解决方案 »
- oracle的字符集
- oracle10g 如何减少执行 SUM 计算的时间呢?
- 数据库插入就有问题不知道问题是什么地方的错误
- 麻烦问题:内存表不能在存储过程重建成表用SQL查询?
- 數據庫表分區
- win7安装11gR2版过程中EM配置出错
- 有没有类似于SQL Server中的事件跟踪器(Profiler)的Oracle第三方工具?
- 问题很菜:在sqlplus中怎样设置每一页的显示的行数,听说说set pagesize,不知道怎么用?
- oracle和ms sql 2000的数据库设计问题!!(比较急!)
- 获得年、月、日值的问题!!很急!!!!!!!!
- ejb中执行oracle sql语句创建触发器的问题,请高手指教,谢谢
- oracle 存储过程编译成功,但执行错误,求教原因。
最好优化一下表结构,message这种存储方式一般不建议使用
最好是把message规格化后,
如 1 0001,0002变成
1 0001
1 0002
然后建一个索引就行了,