• 首页
  • 小学语文
  • 中学语文
  • 中学英语
  • 免费论文
  • 教学随笔
  • 学生作文
  • 综合考试
  • 试题教案
  • 育儿话题
  • 教学资源
  • 编程技术
  • 博客
  • 随机选择表格里的行

    日期:2003-03-26  地址:  作者:
    作者: ZDNet ChinaFriday, November 28 2003 4:08 PM

    本文译自Builder

    你可以使用很多种方式随机选择数据行;这在你想要往网站里加入动态特性的时候特别有效。例如,你可以随便选择一个产品,将其作为“今天的特色产品”来展示,或者质量评估人员(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。


    对 随机选择表格里的行 文章的评论    [查看网友评论]

    验证码:
    匿名发表:
    <a target="_top" href="http://ad.cn.doubleclick.net/click%3Bh=v2|3158|3|0|%2a|b%3B8197397%3B0-0%3B0%3B9113399%3B4252-1|1%3B5332679|5350575|1%3B%3B%7Efdr%3D9708412%3B0-0%3B0%3B6694709%3B31-1|1%3B6203765|6221661|1%3B%3B%3fhttp://www.oracle.com/go/?&Src=3057519&Act=220"><img src="http://m2.cn.doubleclick.net/714347/motion_336.gif" border="0" /></a>