zoukankan      html  css  js  c++  java
  • SQL语句中的TOP(expression) [PERCENT] [WITH TIES] 用法

     

     TOP(expression) [PERCENT] [WITH TIES]

    expression : 指定返回行数的数值表达式。如果指定了PERCENT,则expression默认转换为FLOAT值,否则,他默认为bigint值。

    PERCENT:返回结果中前expression的百分比的行。

    with ties :指定从基本结果集中返回额外的行,对于order by 列中指定的排序方式参数,这些额外返回行的该参数值与top n 中最后一行的该参数值相同。智能在select 语句中且只有在指定order by 自居之后,才能指定top 。。。with ties

    注意:

    在insert,update,delete语句中,top后面的expression需要用()括起来。

    如果查询包含 order by子句,则将返回按order by子句排序的前expression行。如果查询没有order by,则行的顺序是随意的。

    如下数据库数据:执行一条sql语句:

    insert top(1)into TB_Teacher (Name) select Name from TB_Teacher order by Name

    结果会插入选择前1000行的时候,第一条数据。而不会选择ordery by name之后的top(1)

    order by name 应该第一条是小花。

    但是结果如下:插入的是小明,也就是我们在表右键选择前1000行时候默认的第一条数据。

    该子句不影响由insert 语句直接引用的行。insert语句会选择任意的一行。若要确保插入select子查询返回的前两行,应该如下语句:

    insert into TB_Teacher (Name) select top(1) Name from TB_Teacher order by Name

     

    插入的就是 小花。

    使用 with ties:

    查询出前20%工资最高的员工,并且按照降序排列。指定with ties 可以确保结果中同时包含其工资   与 返回的最低工资相同的员工

    如果去掉 with ties 再看看查询结果:

  • 相关阅读:
    C#读写XML no
    ComboBox、ListBox绑定和获取数据 no
    win7 安装oracle 11g no
    2011没有惊天动地 no
    Oracle 删除重复数据只留一条 no
    Oracle 创建用户并分配权限 no
    Oracle 导出、导入某用户所有数据(包括表、视图、存储过程...) no
    谢谢,博客园这么快就审批通过了我的申请!
    Eclipse 中 JAVA AWT相关包不提示问题(解决)
    Eclipse java项目转Maven项目
  • 原文地址:https://www.cnblogs.com/melodygkx/p/10169122.html
Copyright © 2011-2022 走看看