Ich habe die folgenden zwei TabellenAbfrage zu extrahieren zufällige Zeilen aus einer Tabelle
Tabelle 1 - Fragen
für die einzelnen FragenID| Questions | Marks ________________________________________ 1 | What is your name? | 2 2 | How old are you? | 2 3 | Where are you from? | 2 4 | What is your father's name? | 2 5 | Explain about your project? | 5 6 | How was the training session?| 5
zugeteilt Fragen und Marken Enthält 2 - FrageformatTabelle
Enthält wie viele Fragen (Anzahl) zu extrahieren sind für eine Reihe von Marken gehandelt
Mark | Count
-------------
2 | 2
5 | 1
ich die zufälligen Fragen will aus der Tabelle abgeholt werden [Fragen] gemäß dem [count] in der Tabelle [Question_Format].
ID | Question
----------------------------
2 | How old are you?
3 | Where are you from?
6 | How was the training session?
'Reihenfolge von rand()' tut nicht, was Sie in SQL Server erwarten. 'rand()' wird einmal pro Abfrage ausgewertet, also verhält es sich wie eine Konstante. In einem Ausdruck 'order by' ist eine Konstante nicht deterministisch (d. H. Sie wissen nicht, wie das Ergebnis aussehen wird), aber sie ist nicht zufällig. Meiner Erfahrung nach erzeugt es im Allgemeinen die Daten in "Lese" -Reihenfolge. –
Wie @Gordon sagt! Ich werde Downvote entfernen, wenn Sie die Abfrage beheben. – Andomar
@GordonLinoff Danke für diesen Kommentar - ich war mir dessen nicht bewusst. Benutzte 'newid()' stattdessen, was IIUC, sollte der Trick – Mureinik