sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan inkluderes det samlede antal returnerede rækker i resultatsættet fra SELECT T-SQL-kommandoen?

Tilføj COUNT(*) i SQL Server 2008 og nyere OVER () som et af kolonnenavnene i din forespørgsel, og det vil blive udfyldt med det samlede antal returnerede rækker.

Det gentages i hver enkelt række, men værdien er i det mindste tilgængelig.

Grunden til, at mange andre løsninger ikke virker, er, at for meget store resultatsæt, vil du først kende totalen efter gentagelse af alle rækker, hvilket ikke er praktisk i mange tilfælde (især sekventielle behandlingsløsninger). Denne teknik giver dig det samlede antal efter at have kaldt den første IDataReader.Read() , for eksempel.

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


  1. Brugerkontostyring, roller, tilladelser, autentificering PHP og MySQL

  2. SQL udvælger rækker efter seneste dato med to unikke kolonner

  3. Hvorfor kan kun en superbruger OPRET UDVIDELSE hstore, men ikke på Heroku?

  4. mySQL ::indsætte i tabel, data fra en anden tabel?