我有以下转换为SQL的vba代码...
Do While Not sRst1.EOF
sRst1.MoveLast
sRst1.MoveFirst
If (sRst1!Field1 = "FileName") Then
Exit Do
End If
sCtr = sCtr + 1
sRst1.MoveNext
Loop
所以基本上我需要获取第一个记录,其中field1等于FileName,我可以选择TOP(1),其中field1 =“FileName”,如果我没有弄错的话?此外,我需要返回计数到达该记录所需的记录数。我怎么能这样做?
答案 0 :(得分:1)
WITH t AS (SELECT *,ROW_NUMBER() OVER(ORDER BY (SELECT 0)) row_num FROM sRst1)
SELECT field1,row_num FROM t WHERE field1 = 'FileName'
正如FrankPl所指出的,如果你不告诉SQL你想要什么样的顺序,row_num将是有效随机的。替换"(选择0)"用" field1"或其他一些要解决此问题的专栏。