Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Preservando ORDER BY em SELECT INTO


Eu sei que isso é um pouco antigo, mas eu precisava fazer algo semelhante. Eu queria inserir o conteúdo de uma tabela em outra, mas em ordem aleatória. Descobri que poderia fazer isso usando select top n e order by newid() . Sem o 'top n', a ordem não era preservada e a segunda tabela tinha linhas na mesma ordem que a primeira. No entanto, com 'top n', a ordem (aleatória no meu caso) foi preservada. Eu usei um valor de 'n' que era maior que o número de linhas. Então, minha consulta foi ao longo das linhas de:
insert Table2 (T2Col1, T2Col2)
  select top 10000 T1Col1, T1Col2
  from Table1
  order by newid()