搜索SO会产生很多结果,描述如何从数据库表中选择随机的行数据。不过,我的要求有点不同,因为我希望以尽可能高效/随机/有趣的方式从整个随机行中选择个人列。在SQL Server中随机选择行*每列的最佳方法
为了更好地说明:我有一个很大的Customers表,并且我希望生成一堆虚构的演示客户记录,这些记录不是真正的人。我想的只是从客户表中随机查询,然后随机与LastNames,地址,城市,州配对FirstNames等
因此,如果这是我真实的客户数据(简化):
FirstName LastName State
==========================
Sally Simpson SD
Will Warren WI
Mike Malone MN
Kelly Kline KS
然后我会生成一些记录看起来像这样的:
FirstName LastName State
==========================
Sally Warren MN
Kelly Malone SD
等等
我最初的方法有效,但它缺乏的是我希望的风采最终答案将提供。 (我与子查询的重复性,并且该解决方案需要字段的已知/固定数量,因此是不能重复使用的事实尤其不满。)
SELECT
FirstName = (SELECT TOP 1 FirstName FROM Customer ORDER BY newid()),
LastName= (SELECT TOP 1 LastNameFROM Customer ORDER BY newid()),
State = (SELECT TOP 1 State FROM Customer ORDER BY newid())
谢谢!
如果你说你想从你的表中选择一个随机列,对我来说,这似乎是你想要做的查询,并不知道结果将是一个国家,名字或姓氏。我不知道该怎么做,但它似乎也不是你想要的。 看来你*做*想要选择随机行。你只是想为每一列不同的随机行。对不起,除了建议你澄清你的问题之外,我无法帮助你。 – Jordi 2010-04-28 17:00:35
我认为你们都是对的,因为我并不是真的想要随机专栏。这个概念很简单(正如我的样本表和样本结果所示),但措辞使我无法理解。如何“随机重新排列表中的单个列”?一旦我碰到最好的句子,我会编辑这个问题... – LesterDove 2010-04-28 18:12:44
其实,新编辑的标题看起来很完美 - 谢谢 – LesterDove 2010-04-28 18:20:57