【发布时间】:2012-06-15 17:09:38
【问题描述】:
我在 Oracle DB 中有一个表 part,其中包含一些演示数据,如下所示:
ID NUMBER DESCRIPTION
1 T00001 test
2 T00002 test
3 T00003 test
4 T00004 test
5 T00008 test
6 SG0001 test
7 SG0002 test
8 SG0003 test
9 SG0004 test
10 SG0006 test
NUMBER 列定义了具有不同预定义前缀和自增数字后缀的不同类别部分。现在在 DB 中丢失了一些数字,因此连续性被打破。我想要一个性能完美的 SQL 查询或 PL-SQL 函数来列出丢失的数字:
例如:对于上述演示数据。应返回以下数据:
Category1 start with T: T00005,T00006,T00007
Category1 start with SG: SG0005
有人有想法吗?
【问题讨论】:
-
字母前缀列表是否仅限于显示的 2 个值,或者是否还有其他值?另外,你确定有差距时重要吗?你能负担得起将
T0视为2 个字符的前缀,还是T系列可以得到T10000?T0系列和T1系列的差距分开列出有关系吗? -
@JammyC.c - 如果你喜欢答案,你应该投票给他们。
标签: sql oracle oracle11g query-optimization