SQL Server知识点的应用

本文介绍了SQL Server中如何使用SELECT TOP语句限制查询结果行数,并结合ORDER BY进行排序。同时,讲解了OFFSET和FETCH用于分页查询的优势及用法。还涉及了DISTINCT、WHERE、AND、OR和BETWEEN等过滤数据的语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 在SQL Server中有关于限制返回行数的知识点总结:
  1. SELECT TOP语句用于限制查询结果集中返回的行数或行百分比。

注意:由于存储在表中的行的顺序是未知的,不可预测的,因此SELECT TOP语句一定要与ORDER BY 字句一起使用,其查询结果集限于前N个有序行数。

Eg:

   SELECT TOP(expression) [PERCENT]

       [WITH TIES]

   FROM

       Table_name

   ORDER BY

       Column_name;

在上图示例中,SELECT语句可以包含其它字句,如WHERE,JOIN,HAVING和GROUP BY。

(1)expression - TOP关键字后面是一个表达式,它指定要返回的行数。 如果使用PERCENT,则将表达式计算为浮点值,否则将其转换为BIGINT值。

(2)PERCENT - PERCENT关键字指示查询返回前N个行百分比,其中N是表达式的结果。(3)WITH TIES - WITH TIES用于返回更多行,其值与有限结果集中的最后一行匹配。注意: WITHTIES可能会导致返回的行数多于在表达式中指定的行数。

2. TOP的使用方式:

  (1)使用具有恒定值的TOP,以下示例使用常量值返回前10个最贵的产品:

      Eg:

         SELECT TOP 10

            Product_name,

List_price

             FROM

                Production.products

             ORDER BY

                 List_price DESC;

      (2)使用TOP返回行的百分比,使用percent指定结果集中返回的数值为百分数,数值的百分之一是分数值。

      (3)使用TOP WITH TIES通常用于返回某个表最贵(便宜),最高(低)数值的前几个产品,与最后一行的值的匹配的行。

   二、SQL Server Offset Fetch字句:

       1.OFFSET和FETCH字句是ORDER BY字句的ORDER BY字句的选项。用于限制查询返回的行数。必须将OFFSET和FETCH字句宇ORDER BY字句一起使用。

         注意:OFFSET和FETCH字句比实现TOP字句更适合实现查询分页解决方案。

         Eg:

            ORDER BY column_list[ASC|DESC]

            OFFSET offset_row_count {Row|ROWS}

            FETCH{FIRST|NEXT} fetch_row_count{ROW|ROWS}ONLY

(1)在以上示例中,OFFSET字句指定在开始从查询返回行之前要跳过的行数。offset_row_count可以是大于或等于零的常量,变量或参数。

(2)FETCH字句指定在处理OFFSET子句后要返回的行数。Off_row_count可以是大于或等于1的常量,变量或标量。

(3)OFFSET字句是必需的,而FETCH字句是可选的。此外,FIRST和NEXT是同义词,因此可以互换使用。

     2.分页查询:需要参数,PageSize:每页多少条,PageNum:页数,如从哪张表中查询哪些数据,查询多少页数据。

       Eg:

         SELECT

             Product_name,

             List_price

         FROM

            Production.products

        ORDER BY

            List_price,

            Product_name

       OFFSET(PageNum-1)*PageSize ROWS

       FETCH NEXT PageSize ROWS ONLY;

  • 有关过滤数据的语句:

1、Select Distinct字句检索指定列表中的唯一不同值,换句话来说,它从结果集中删除列中的重复值。DISTINCT字句将所有null值视为相同值。

2.SQL Server WHERE字句从表中获取满足一行或多个条件的行。

  Eg:

SELECT

    Select_list

FROM

   Table_name

WHERE

   Search_condition;

  1. 在WHERE字句中,指定搜索条件以过滤FROM字句返回的行。WHERE字句仅返回导致搜索条件计算为TRUE的行。搜索条件是逻辑表达式或多个逻辑表达式的组合

3.AND查找满足两个条件的行,AND是一个逻辑运算符,用于组合两个布尔表达式。

4.OR查找满足任意一个条件的行,是一个逻辑运算符,用于组合两个布尔表达式,在语句中使用多个逻辑运算符时,SQL Server将在AND运算之后计算OR运算符。但是,不同的是,可以使用括号更改评估顺序。

5.Between查找两个值之间的值的行,是一个逻辑运算符,用于指定要测试值的范围。可以使用大于或等于(>=)且小于或等于(<=)来替换。

注意:使用BETWEEN运算符的条件比使用比较运算符>=,<=和逻辑运算符AND的条件更具可读性。要取消BETWEEN运算符的结果,请使用NOT BETWEEN运算符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值