我有一门餐桌课程,每一门课程都有很多参考资料。
Course
==========
course_id
Resource
==========
course_id
number
对于每个course_id,我想要一个单独的自动增量。或者,换句话说,我想要自动枚举给定课程的资源。例如,资源表可以类似于:
course_id | number
==================
1 | 1
1 | 2
2 | 1
1 | 3
1 | 4
2 | 2
2 | 3
诸若此类。我想使用IBM DB2在SQL中进行此操作。
发布于 2010-05-16 09:04:10
你应该让Resource
自己选身份证..。
resource_id | course_id
=======================
1 | 1
2 | 1
3 | 2
4 | 1
5 | 1
6 | 2
7 | 2
...and通过查询发现排名:
SELECT course_id,
(SELECT COUNT(*)
FROM Resource
WHERE resource_id < r.resource_id
) + 1 AS rank
FROM Resource r
这无疑是优化者更多的工作,但将大大简化生活的每一个其他方面(例如,处理删除)。
https://stackoverflow.com/questions/2843096
复制相似问题