![]() |
1
1
下面是我认为将为您提供下一个值的代码。我创建了3个函数。这个表就是我用alpha ID模拟的table.column(我用的是MyTable.AlphaID)。我假设这是您暗示的,并且有一个由五个字符大写字母字符串(AlphaID)组成的连续块:
顺便说一句,如果你不想假设连续性,你可以按照你的建议去做(如果有“zzzz”行),使用序列中的第一个间隙。将最后一个函数替换为:
|
![]() |
2
0
您必须在序列中存储最后分配的标识符。 例如,将其存储在另一个有一列的表中&一排。
每次分配一个新的标识符时,您都会获取该小表中的值,增加该值,并将该值存储在主表中,同时更新该表中的值
通常的注意事项适用于并发性、表锁定等。 |
![]() |
3
0
我想我会尝试将序列存储为整数,然后将其转换为字符串。或者存储与alpha值同时递增的并行整数列。无论哪种方式,都可以按整数列排序。 |
![]() |
4
0
这里的一个问题是,除非有关于如何删除旧条目的更多细节,否则您无法从数据中真正判断“最后一个”条目在哪里。 如果我理解正确的话,您将在序列的末尾换行,这意味着您必须删除一些旧数据以腾出空间。但是,如果数据没有以完全一致的方式删除,则最终会出现碎片,如下所示:
您会注意到,没有明显的下一个值…D可能是最后创建的值,但也可能是L或S。 您最多可以查找第一个或最后一个缺少的元素(使用存储过程执行x+1检查,就像在整数序列中查找缺少的元素一样),但它不会为滚动列表提供任何特殊结果。 |
![]() |
5
0
因为我不想编写递增字母的代码,所以我会创建一个包含所有有效ID(aaaaa到ZZZZZZ)的表,这些ID的整数范围为1到X。然后,您可以使用以下选项:
如果表为空,则合并在那里。为了真正可靠,您应该计算“AAAAAA”(选择@min\u silly\u id=silly\u id,其中id=1),以防您的“编号”算法发生变化。 如果你真的想把事情做好,你应该按照建议重做数据库设计。 |
![]() |
6
0
我认为对我的需求影响最小的解决方案是添加一个标识列。我可以保证的一件事是,排序将是这样的,即应该“先到”的条目将首先添加——我永远不会添加标识符为BBBB的条目,然后再返回并添加BBBA。如果我没有那个约束,显然它不会起作用,但就目前而言,我可以按标识列排序,得到我想要的排序。 我会继续考虑其他建议——也许如果它们在我脑海中“点击”,它们看起来会是一个更好的选择。 |
![]() |
7
0
返回下一个
此查询将搜索
结果如下:
我E它回来了
|
![]() |
Ben · 统计向量中的单词在字符串中出现的频率 3 月前 |
![]() |
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 5 月前 |
![]() |
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 5 月前 |
![]() |
user764754 · 防止多行原始字符串文字中出现新行字符 5 月前 |
![]() |
Bogaso · 从列表中返回与模式匹配的元素 5 月前 |
![]() |
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 5 月前 |