SQL Server: wie kann ich das erzeugen der einzigartigen Zufallszahl-in jeder Zeile der Aufzeichnung?

Ich bin mit SQL Server 2000. Ich möchte zum generieren von Zufallszahlen ohne Wiederholung in jeder Zeile. Aber mein code funktioniert nicht. Ich habe versucht, viele Male, aber ich kann nicht fix die Wiederholung problem. Mein code wie folgt: ich habe "den Fall" zu behandeln doppelter Anzahl, aber nicht arbeiten. Wer kann mir helfen? So viel Dank!

DECLARE @index INT
    ,@ran_no INT
    ,@counter INT
    ,@i INT

SET @i = 1

WHILE @i <= 18
BEGIN
    SELECT @index = count(basket_seq)
    FROM dbo.test
    WHERE basket_seq = @i
        AND flag = 'left'

    BEGIN
        UPDATE dbo.test
        SET @ran_no = convert(INT, 1 + @index * RAND(CHECKSUM(NEWID())))
            ,@ran_no = (
                CASE 
                    WHEN convert(INT, 1 + @index * RAND(CHECKSUM(NEWID()))) NOT IN (
                            SELECT seq_no
                            FROM dbo.test
                            WHERE basket_seq = @i
                                AND flag = 'left'
                            )
                        THEN @ran_no
                    END
                )
            ,seq_no = @ran_no
        WHERE basket_seq = @i
            AND flag = 'left'
    END

    SET @i = @i + 1
END
  • Warum verwenden Sie eine case-Anweisung? nur erklären
  • weil ich will, um zu prüfen, ob die zufällige Anzahl der bereits in der Spalte "seq_no". FALL, WENN convert(INT, 1 + @ - index * RAND(PRÜFSUMME(NEWID()))) not IN (SELECT seq_no VON dbo.test WO basket_seq = @i UND flag = 'Links')
  • ich glaube nicht, NEWID() existiert in SQL 2000.
  • random ist ein Wunsch oder Ziel ist es, eine eindeutige Nummer? die Frage ist, weil Sie schrieb "ich würde gerne zu", wie wenn dies war ein Wunsch und keine Voraussetzung.
  • eigentlich will ich weisen eindeutige Nummer für jede Zeile des Datensatzes. Wenn ich nur hinzufügen Sequenz-Nummer(1,2,3,4..........) zu jedem Datensatz, ich fürchte, es würde zeigen die gleichen Datensätze jedes mal. So habe ich versucht, eindeutige Zufallszahl.
InformationsquelleAutor wing91 | 2015-10-14
Schreibe einen Kommentar