如何在SQL Server中同時執行兩條命令?如何在SQL Server 2008中同時執行兩條命令
我想根據行數得到一個表的行數和一些行。例如,我想獲得一個表的行數,並假設我想在單個頁面上獲得最後50行。
我該怎麼做?
EDIT 1):
考慮,我第一次得到數並返回給我100,我希望得到80到100 recordsin此時,另一含有交易可能會刪除70到100條記錄,我無法獲得適當的記錄
如何在SQL Server中同時執行兩條命令?如何在SQL Server 2008中同時執行兩條命令
我想根據行數得到一個表的行數和一些行。例如,我想獲得一個表的行數,並假設我想在單個頁面上獲得最後50行。
我該怎麼做?
EDIT 1):
考慮,我第一次得到數並返回給我100,我希望得到80到100 recordsin此時,另一含有交易可能會刪除70到100條記錄,我無法獲得適當的記錄
內聯計數可以多次評估,也可以給出不同的結果。一個單獨的CROSS JOIN方法在某些時候
參見將給出不同的結果爲什麼與攝製腳本:can I get count() and rows from one sql query in sql server?
;WITH aCTE AS
(
SELECT
*,
COUNT(*) OVER() AS TotalRows,
ROW_NUMBER OVER (ORDER BY SomeLatest DESC) AS rn
FROM
MyTable
) foo
SELECT
*
FROM
foo
WHERE
rn <= 50
select * from tableName1 where column1=(select count(*) from tableName2)
您的要求是高效率還是執行單個命令?這些不一定導致相同的事情。有關實現高效尋呼的良好討論,請參閱this article和this follow-up discussion。不要重新發明輪子,也不要認爲處理兩者的單一命令必然會比其他解決方案更有效率。
如果我理解正確,你想要一個查詢,做表中的所有記錄的計數,並在同一時間只獲得50行。 你可以做到這一點是這樣的:
Select Top 50 Column1, column2, (Select count(ID) from table1) as total from Table1
個人而言,我更願意執行兩個查詢。一個用於計數,另一個用於前50行(效率更高的IMo)
請參閱編輯1 – Arian
是否必須在兩個命令,或者你確定,如果它僅僅是一個? –
如果你想根據行數選擇你的選擇 - 你需要首先**等待直到行數完成 - 你不能並行地完成這項工作...... –