所以我有一个名为客户的表
id | name
------------
1 Tom
2 Bob
3 Sam
4 Angel
5 Joe
我想以随机顺序选择'名称'列中的行,并将这些行插入到新表中,我尝试过此操作
select Name into TestTable from Customer order by NEWID()
select * from TestTable
但是它不起作用吗? TestTable中的行与原始表中的行顺序相同。
Tom
Bob
Sam
Angel
Joe
我尝试执行多次,但每次的结果都是相同的。在随机化发生之前,似乎已将行插入到新表中。有什么想法吗?
表中的行没有排序。它们表示无序集。如果要以随机顺序排列行,则在提取它们时要按顺序排列:
select name
from testtable
order by newid();
或者,您可以添加identity
列,该列应保留group by
的顺序:
select identity(1, 1) as id, Name
into TestTable
from Customer order by NEWID();
select *
from TestTable
order by id;