Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Beibehalten von ORDER BY in SELECT INTO

Ich weiß, das ist ein bisschen alt, aber ich musste etwas Ähnliches tun. Ich wollte den Inhalt einer Tabelle in eine andere einfügen, aber in zufälliger Reihenfolge. Ich fand heraus, dass ich dies tun konnte, indem ich select top n verwendete und order by newid() . Ohne „top n“ wurde die Reihenfolge nicht beibehalten und die zweite Tabelle hatte Zeilen in der gleichen Reihenfolge wie die erste. Bei 'top n' wurde jedoch die Reihenfolge (in meinem Fall zufällig) beibehalten. Ich habe einen Wert von 'n' verwendet, der größer als die Anzahl der Zeilen war. Meine Abfrage war also in etwa so:

insert Table2 (T2Col1, T2Col2)
  select top 10000 T1Col1, T1Col2
  from Table1
  order by newid()