Wie fügt man 1000 zufällige Daten in einen bestimmten Bereich ein?
Ich bin neu in sql server. Ich brauche generieren Sie zufällige ausgewählte Termine aus einem bestimmten Datumsbereich.
Wie das Datum der Anstellung eines Mitarbeiters sollte irgendwo zwischen 2011-01-01
und 2011-12-31
. Die generierten Daten eingefügt werden soll, in ein 1000-Zeilen-Tabelle nach dem Zufallsprinzip.
Kann jeder ein guide, mich mit meiner Abfrage?
InformationsquelleAutor der Frage user1260815 | 2012-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Mikael Eriksson
Ich Schreibe Ihnen diese einfache Funktion zurückgibt, die ein zufälliges Datum zwischen Datum-Bereich:
Aufruf der Funktion:
kombinieren Sie die Funktion mit einer Zeile generator:
BEARBEITET
Generieren von Zufallszahlen verwenden:
anstelle von RAND()
BEARBEITET II
Funktion gibt 'Ungültige Verwendung einer side-effecting operator 'rand' innerhalb der Funktion' Fehler. Dies ist, weil wir nicht verwenden können, nicht-deterministischen Funktionen wie RAND() oder NEWID().
Ist ein workaround, um erstellen Sie eine Ansicht, wie:
und verwenden Sie dann in der Funktion:
oder einfach nicht verwenden Sie die Funktion und schreiben expresion auf auswählen. Ich habe eine Funktion schreiben, die nur yo erklären Schritt für Schritt, die solucion.
Können Sie testen Sie hier diese Abfrage.
InformationsquelleAutor der Antwort dani herrera
Gut, ich weiß, dass dies ist eine alte Frage, aber es verbunden war, die von neueren so... Hier sind meine 2 cents:
Basierend auf diesen Voraussetzungen, glaube ich, dass es wirklich keine wirkliche Notwendigkeit, zu speichern 1000 zufällige Daten in eine Tabelle, wenn es möglich zu speichern, werden nur die relevanten Datum, und wählen einfach, wie viele Reihen und in der Reihenfolge, die Sie benötigen.
Erste, speichern Sie die Daten in die Tabelle. Sie können eine Tally Tabelle zu erstellen, die die relevanten Zeitraums.
Eine Strichliste-Tabelle ist eine Tabelle, die eine Folge von zahlen. für argument Willen, nehmen wir an, Sie haben bereits Ihre strichliste, Tabelle der zahlen von 0 bis 1.000.000.
Sie können in diesen link prüfen für den besten Weg, um eine zu erstellen, ich persönlich mag diese Methode:
Nun, dass Sie den Tally-Tisch, es ist ziemlich einfach einen Kalender erstellen:
Nun, dass Sie den Kalender und die Zählung der Tabelle, es ist ziemlich einfach, Sie beide zu verwenden, um beliebig viele Datensätze in beliebiger Reihenfolge, die Sie wollen.
Tausend zufällig geordneten Terminen? kein problem:
Vollständige Skript, einschließlich erstellen und löschen der Aufzeichnung table dauerte weniger als eine Sekunde ausführen:
InformationsquelleAutor der Antwort Zohar Peled
Können Sie verwenden Sie einfach diese Abfrage.
Wenn Sie möchten, fügen Sie Daten aus einer anderen Zeitlinie, die Sie ändern können
2011-01-01
und365
(365
gleich Tage, die Sie hinzufügen möchten).Zum Beispiel, sagen wir, die Sie hinzufügen möchten zufälliges Datum zwischen
2018-01-01
und2018-01-31
können Sie ändern Sie die Abfrage wie diese.Demo: http://sqlfiddle.com/#!18/9eecb/14676/0
Einfügen, verwenden Sie einfach diese...
Einfügen 1000 Zeilen auf einmal...
Zur Aktualisierung der vorhandenen Zeilen...
InformationsquelleAutor der Antwort D T