Make SQL Selektiere die selbe Zeile mehrmals

7

Ich muss meinen Mailserver testen. Wie kann ich eine Select-Anweisung erstellen? das wählt sage ID = 5469 tausend mal.

    
Snoop Dogg 18.03.2010, 19:13
quelle

10 Antworten

17

Wenn ich Ihre Bedeutung verstehe, besteht eine sehr einfache Möglichkeit darin, eine abgeleitete Abfrage in einer Tabelle mit mehr als 1000 Zeilen zu verknüpfen und eine Top 1000 darauf zu setzen. Dies würde Ihre Ergebnisse 1000-mal duplizieren.

EDIT: Als Beispiel (Dies ist MSSQL, ich weiß nicht, ob Access viel anders ist)

%Vor%     
Robin Day 18.03.2010 19:22
quelle
4

Sie können die UNION ALL-Anweisung verwenden.

Versuchen Sie etwas wie:

%Vor%

Sie müssten die SELECT-Anweisung einige Male wiederholen, aber Sie könnten ein wenig VB-Code in Access schreiben, um eine dynamische SQL-Anweisung zu erstellen und dann auszuführen. Nicht schön, aber es sollte funktionieren.

    
TLiebe 18.03.2010 19:22
quelle
4

Erstellen Sie eine Hilfstabelle für diesen Zweck:
JUST_NUMBER(NUM INT primary key)
Fügen Sie (mit Hilfe eines VB-Skripts) Zahlen von 1 bis N ein. Führen Sie dann diese nicht verbundene Abfrage aus:

%Vor%     
van 18.03.2010 19:26
quelle
2

Hier können Sie einen rekursiven Ausdruck für eine allgemeine Tabelle verwenden, um einige leere Zeilen zu generieren und sie anschließend wieder in die gewünschte Zeile einzufügen:

%Vor%

Ersetzen Sie @myData für Ihre reale Tabelle und ändern Sie das endgültige Prädikat entsprechend.

    
spender 18.03.2010 19:48
quelle
1

Wenn Sie dies in SQL Server tun

%Vor%

select '12345' kann ein beliebiger Ausdruck sein

    
Joe Pitz 18.03.2010 19:22
quelle
1

einfacher Weg ...

Dies existiert nur eine Zeile in der DB

%Vor%

Versuchen Sie, eine andere Tabelle, in der kein Constraint-Schlüssel vorhanden ist, mit der Haupttabelle in Beziehung zu setzen

Ursprüngliche Abfrage

%Vor%

Die funktionale Abfrage ... fügt eine nicht verwandte Tabelle namens 'dbo.TB_Labels'

hinzu %Vor%     
Elton Joani 05.05.2016 17:02
quelle
0

create Tabelle # tmp1 (ID int, Feld vdchar (max)) Einfügen in # tmp1 (id, fld) Werte (1, 'Hallo!'), (2, 'Welt'), (3, 'schöner Tag!')

Wählen Sie * aus # tmp1 Gehe

Wählen Sie * aus # tmp1 mit ID = 3 Geh 1000

drop table # tmp1

    
Alekzander 13.09.2012 12:25
quelle
0

In Postgres gibt es eine nette Funktion namens generate_series. So ist es in postgreSQL so einfach wie:

%Vor%

Auf diese Weise wird die Abfrage 1000 mal ausgeführt.

Beispiel für postgreSQL:

%Vor%

Wie Sie im untenstehenden Ergebnis sehen können, werden die Daten von uid 1000 Mal gelesen, wie durch die Erzeugung eines neuen Uuids bei jeder neuen Zeile bestätigt.

%Vor%

Natürlich haben andere DBs nicht unbedingt die gleiche Funktion, aber es könnte gemacht werden:

Siehe hier und

    
Krauss 14.02.2017 02:03
quelle
-1

Der einfachste Weg ist, eine Tabelle mit 1000 Zeilen zu erstellen. Nennen wir es BigTable . Dann würden Sie nach den gewünschten Daten suchen und diese mit der großen Tabelle verbinden, wie folgt:

%Vor%     
Gabe 18.03.2010 20:00
quelle
-2

in SQL Server versuchen:

%Vor%

Ausgabe:

%Vor%     
KM. 18.03.2010 19:18
quelle

Tags und Links