sql >> Databasteknik >  >> RDS >> Sqlserver

Hur inkluderar man det totala antalet returnerade rader i resultatuppsättningen från kommandot SELECT T-SQL?

I SQL Server 2008 och senare, lägg till COUNT(*) OVER () som ett av kolumnnamnen i din fråga och som kommer att fyllas i med det totala antalet returnerade rader.

Det upprepas på varje enskild rad men åtminstone värdet är tillgängligt.

Anledningen till att många andra lösningar inte fungerar är att för mycket stora resultatuppsättningar kommer du inte att veta totalen förrän efter att ha itererat alla rader, vilket inte är praktiskt i många fall (särskilt sekventiell bearbetningslösning). Denna teknik ger dig det totala antalet efter att ha anropat den första IDataReader.Read() , till exempel.

select COUNT(*) OVER () as Total_Rows, ... from ...


  1. Sök om nummer finns i ett uttryck som:1-3,5,10-15,20

  2. MySQL db frågetecken istället för hebreiska tecken..?

  3. Vad är det bästa sättet att ansluta mellan Android och Oracle-databasen?

  4. Hur INTE REGEXP fungerar i MySQL