Ich habe zwei Fragen:Zufallsfunktion in SQL nur für eine bestimmte Spalte verwenden
Gibt es eine Möglichkeit,
dbms_random.random
ODERdbms_random.value
in Oracle zu verwenden, indem nur für eine Spalte spezifiziert?Wenn das obige möglich ist, kann ich den zufällig generierten Wert der Vorkommen maximal 5 mal begrenzen, zum Beispiel?
Ich benutze Oracle 11g :) Danke.
free
Tabelle:
freeID | lecturerID | availableID
1 1004 10
2 1004 11
3 1004 12
4 1004 13
5 1005 11
6 1005 12
7 1005 13
8 1005 14
Dies ist meine Frage:
SELECT DISTINCT e1.FreeID, e1.lecturerID, e1.AVAILABLEID,
e2.FREEID, e2.LECTURERID, e2.AVAILABLEID,
s.studentID, s.studentName, s.lecturerID
FROM free e1
INNER JOIN free e2
ON e1.availableID = e2.availableID
JOIN student s
ON s.lecturerID = e1.LECTURERID
AND e1.lecturerID='1004'
AND e2.lecturerID='1005'
AND e1.AVAILABLEID = e2.availableid
Basierend auf obige Abfrage, ich INNER JOIN
free
Tabelle mit availableID
für lecturerID
mit den gleichen availableID
zu suchen.
Dann habe ich JOIN
wieder mit student
Tisch mit lecturerID
Erwartetes Ergebnis:
freeID | e1.lecturerID | e1.availableID | e1.availableID | e2.lecturerID
1 1004 13 13 1005
2 1004 11 11 1005
3 1004 12 12 1005
4 1004 13 13 1005
ich die availableID
Spalte wollen so lange nach dem Zufallsprinzip unter ihnen gewählt, da sie beide denselben Wert haben, jeder Dozent hat das gleiche availableID
und nicht 5 Vorkommnisse überschreiten. Wenn es überschritten wird, wird es zum nächsten Wert verschoben.
Was meinst du mit nur einer Spalte? Können Sie mit einem Beispielschema und Werten belegen? – Spade
Es ist ein Zufallsgenerator. Sie erzeugen beide einen einzelnen zufälligen Wert. Ich bin verwirrt, was du meinst "nur für eine Spalte" und "maximal 5 mal". Sie würden 5 Zufallszahlen generieren, wenn Sie 5 Zahlen wünschen. – Dresden
Diese Funktionen geben einzelne Werte zurück, sie generieren keine Datenzeilen, sie erhalten eigenständige Zahlen oder Zeichenfolgen. Ich bin mir nicht sicher, was Sie gelesen haben, aber es muss etwas Komplizierteres getan haben. Sie können die Ausgabe einer der beiden Funktionen verwenden, um einen einzelnen Spaltenwert festzulegen. Sie müssen mehr darüber erklären, was Sie zu aktualisieren versuchen und wie - wenn Sie beispielsweise bereits eine Update-Anweisung haben, die Sie ändern möchten. –