欢迎光临
我们一直在努力

随机选择表格里的行-数据库专栏,SQL Server

建站超值云服务器,限时71元/月

作者: zdnet chinafriday, november 28 2003 4:08 pm

你可以使用很多种方式随机选择数据行;这在你想要往网站里加入动态特性的时候特别有效。例如,你可以随便选择一个产品,将其作为“今天的特色产品”来展示,或者质量评估人员(qa)可以生成一个随机的调用表,以测量用户的满意度。

但是其中的障碍是sql不允许随机选择列。好消息是,有一个简单的技巧能够在sql里实现这一功能。

该解决方案基于uniqueidentifier这个数据类型。唯一的标识符,也叫做全局唯一标识符(guaranteed unique identifiers,guid),看起来就像下面这样:

4c34aa46-2a5a-4f8c-897f-02354728c7b0

sql服务器在很多情况下都会使用guid,最明显的可能就是复制过程了。当正常增长的单位数据列(identity column)没有提供足够的关键字时,你可以使用它们。要做到这一点,你就要创建一个uniqueidentifier类型的数据列,而这个类型缺省的值是newid(),就像下面一样:

create table mynewtable( pk uniqueidentifier not null default newid(), anothercolumnvarchar(50) not null,  . . .

这个函数就像是解决我们选择随机列问题的钥匙。我们可以简单地调用newid(),将其作为我们查询里的一个虚拟列,就像下面这样:

select top 10 orderid, newid() as randomfrom ordersorder by random

最近我创建一个页面,上面发表有10个随机用户的引言来赞美公司服务,在做这个的时候我用到了这个解决方案。用户也可以在他们每次访问网站的时候看到新的引言。

这是向网站加入新吸引点的简单方法。既然你知道了如何发布随机选择的数据列,你看起来就像是一个sql的明星了。

本文作者:arthur fuller开发数据库应用程序已经有20年了。他的专业经验包括access adps、微软sql 2000、mysql和.net。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 随机选择表格里的行-数据库专栏,SQL Server
分享到: 更多 (0)