MS 访问数据库,选择查询中的序列号



我在MS Access SQL中有一个查询,它正在从我的表中获取一些信息。我想在我的选择语句中包含一个字段,该字段显示一个整数,每行递增 X(1,2,3 或其他)。

所以我的数据集看起来像:
(如果递增 2)

Name   SKU     SortOrder <-This is my Auto Increment Field
Table  XYZ123  0
Chair  YRZ345  2
Sofa   UFD355  4

我没有在我的表中存储排序顺序,我只想在 Access SQL 中生成这些值。

谢谢你的帮助。


更新我找到了以下文章,其中解释了通过访问程序和 vba 实现此目的的几种方法,但是我正在编写一个使用 Access TSQL 查询获取数据然后导出到 excel 文件中的 c# 程序,因此我将无法向访问程序中的原始数据库添加任何内容, 此外,在临时表路线上,他们提到它使数据库膨胀。

https://accessexperts.com/blog/2015/07/28/ways-to-do-sequential-numbering-in-access/

我只想要在我的 select 语句中创建的顺序编号列,这不可能吗?

我建议不要使用SQL来计算此类数据。这是不好的做法。 如果需要,最好在表中添加一个字段并在执行 sql 语句之前执行计算。

无论如何,可以在VBA中实现功能来执行此操作。喜欢:

Private m_counter as Integer
Function CounterInit(Byval counter as Integer)
m_counter = counter
End Function
Function CounterGetNext(Byval incr as Integer)
m_counter = m_counter + incr
CounterGetNext = m_counter
End Function

然后在SQL中使用CounterGetNext()。但是你仍然需要在sql执行之前调用CounterInit()。对此类查询使用记录集类型 = 快照。

最新更新