By Frank Kalis
Die Anforderung, zufällig ausgewählte Datensätze zurückzugeben, findet man recht häufig. Analyse einer Stichprobe ist eine wahre Spielwiese für Statistiker. In T-SQL kann dies recht einfach umgesetzt werden.
USE PUBS SELECT TOP 10 au_fname , au_lname FROM authors ORDER BY NEWID() au_fname au_lname -------------------- ---------------------------------------- Johnson Hello World Reginald Blotchet-Halls Meander Smith Albert Ringer Marjorie Green Dean Straight Michael O'Leary Sylvia Panteley Michel DeFrance Anne Ringer (10 row(s) affected) --nächste Ausführung au_fname au_lname -------------------- ---------------------------------------- Akiko Yokomoto Meander Smith Burt Gringlesby Johnson Hello World Dean Straight Morningstar Greene Anne Ringer Innes del Castillo Cheryl Carson Michel DeFrance (10 row(s) affected) --noch einmal au_fname au_lname -------------------- ---------------------------------------- Dean Straight Abraham Bennet Burt Gringlesby Heather McBadden Anne Ringer Marjorie Green Stearns MacFeather Sylvia Panteley Sheryl Hunter Albert Ringer (10 row(s) affected)
ist eine beliebte Möglichkeit dafür.
Alternativ kann man die Anzahl der zurückgegebenen Datensätze auch mit
SET ROWCOUNT 10
beschränken. Dies bietet sogar noch den Vorteil, daß eine Variable verwendet werden kann, ohne gleich dynamisches SQL einsetzen zu müssen, wie bei TOP @Variable notwendig wäre.
USE PUBS DECLARE @MyCount INT DECLARE @MyCount2 INT SET @MyCount = 10 SET ROWCOUNT @MyCount SELECT au_lname, au_fname FROM authors ORDER BY NEWID() SET ROWCOUNT 0 SET @MyCount2 = 2 SET ROWCOUNT @MyCount2 SELECT au_lname , au_fname FROM authors ORDER BY NEWID() SET ROWCOUNT 0 au_lname au_fname ---------------------------------------- -------------------- Panteley Sylvia O'Leary Michael Gringlesby Burt FRANK Marjorie Dull Ann Hunter Sheryl FRANK Johnson Stringer Dirk del Castillo Innes Blotchet-Halls Reginald au_lname au_fname ---------------------------------------- -------------------- Bennet Abraham Blotchet-Halls Reginald