Php TSQL输出行计数
我有一个以XML格式输出结果的存储过程;输出结果都很好 但是,如果可能的话,我需要包括它正在输出的行数Php TSQL输出行计数,php,sql,sql-server,Php,Sql,Sql Server,我有一个以XML格式输出结果的存储过程;输出结果都很好 但是,如果可能的话,我需要包括它正在输出的行数 SELECT A.[id], A.[petName], A.[petCaption], B.[petType], C.[FirstName] as ownerFirstName, C.[LastName] as ownerLastName,
SELECT A.[id],
A.[petName],
A.[petCaption],
B.[petType],
C.[FirstName] as ownerFirstName,
C.[LastName] as ownerLastName,
A.[imageName],
(
SELECT CONVERT(varchar(20),sum(transactionAmount), 1) as totalRaised
FROM petContestTransactionsDonations
WHERE submissionID = A.[id]
FOR XML PATH ('transactionDetails'), TYPE, ELEMENTS
)
FROM petContestSubmissions as A
LEFT OUTER JOIN petContestTypes as B
ON A.[petType] = B.[id]
LEFT OUTER JOIN EmpTable as C
ON A.[empID] = C.EmpID
LEFT OUTER JOIN petContestTransactionsEntries as E
ON E.[submissionID] = A.[id]
WHERE E.[transactionStatus] = 'completed'
ORDER BY A.[id]
OFFSET @offset ROWS
FETCH NEXT @rows ROWS ONLY
FOR XML PATH ('submission'), TYPE, ELEMENTS, ROOT ('root');
我将偏移量
和行
传递给存储过程,因为我正在使用它进行分页。它将该页的记录限制为X行
即使我说给我接下来的10张唱片,它可能只剩下8张了。这就是我需要回报的;在select语句中找到的总记录数
最好是在存储过程中还是在循环记录的php中这样做 如果需要每行的行数,请包括:
count(*) over () as RowCount
在最外层的中选择
子句
如果您想先将所有数据读入应用程序,那么就在应用程序层中执行
编辑:
如果需要查询返回的行数,那么最好在应用程序层中执行。您还可以执行以下操作:
select t.*, count(*) over () as RowCOunt
from (<your query here>) t;
选择t.*,count(*)over()作为行计数
从()t;
也许这能满足您的需要。不在同一查询中,但您可以尝试
SELECT @@ROWCOUNT AS RowsAffected
在你的查询之后,你应该马上得到你想要的@@ROWCOUNT是每个会话的,所以只要不结束连接,就应该可以。Hm,这会忽略偏移量和行数,并获取该表中所有记录的计数。我需要知道在select中返回了多少条记录。我正在使用的插件说:“从第5行开始给我10行。它最多只返回10行,但如果行数较少,我需要知道计数,这样脚本就知道没有更多的数据了。@SBB…我以为你的问题是关于表中记录的数量而不是偏移量。