zoukankan      html  css  js  c++  java
  • T-SQL 随机返回特定行数据和分页查询

    T-SQL 语言相较于标准SQL添加了很多特性,为了提高SQL Server的表现,是有必要深入了解的,面试时一般也会包含这两个小问题。

    首先,是在一个AdventureWorks中Person.Address中随机返回5行信息,可以如下写:

    SELECT TOP 5 * 
    FROM
    (
        SELECT *,NEWID() as RandomID
        FROM Person.Address
    ) t
    ORDER BY t.RandomID

    关键在于调用了内置函数NEWID()生成的随机数,并排序,取前5行。

    分页查询,需要查询Person.Address中按城市排序后的第50-200行,当然可以写一个存储过程来专门按参数来查询。

    SELECT * FROM
    (
        SELECT *,ROW_NUMBER() OVER (ORDER BY City) as RowNumber
        FROM Person.Address
    ) AS t
    WHERE t.RowNumber BETWEEN 50 AND 200

    关键是采用了ROW_NUMBER()函数,计算在所有查询行中当前行是排行第几,再筛选最后的结果。

    总结:用一些语言的特性,虽然绑定了平台,不过,在一个大平台上,就无所谓了,用它还是值得的。

  • 相关阅读:
    CommandLine
    eclipse创建java和web工程
    rabbitmq安装(ubuntu)
    vue搭建手顺
    docker配置仓库源
    spark基本概念整理
    Vue整合d3.v5.js制作--柱状图(rect)
    Vue整合d3.v5.js制作--折线图(line)
    k8s强制删除pod
    踩坑ios H5
  • 原文地址:https://www.cnblogs.com/ProJKY/p/tsqlRandomRowANDRank.html
Copyright © 2011-2022 走看看