0 0

order by 碰到 union 10

[size=xx-large]一个学生表stu,有中学生和小学生,记录考试成绩,
现在要查出成绩最高的10名中学生和10名小学生,
怎么写sql?
select top(10) * from stu where type=中 order by score desc
union
select top(10) * from stu where type=小 order by score desc
这样会报错, 那恰当的写法是怎样的呢?
sql server环境下.
[/size]
2013年4月22日 21:14

2个答案 按时间排序 按投票排序

0 0

采纳的答案

http://www.codesky.net/article/201007/145530.html
select * from (
   select top(10) * from stu where type=中 order by score desc
) t1
union  all
select * from (
    select top(10) * from stu where type=小 order by score desc
) t2

union all--代替union  (因为union会排序 但此处没必要 )
你这个逻辑有问题 假设前10名的成绩为
100
100
100
99
99
99
98
98
98
97
97
97 (这个也算吧)

可以这样

select * from stu where type=中 and score in ( select top 10 score from stu where type=中 group by score order by score)

2013年4月22日 21:21
0 0

union  要确保2边的列是一样多,也就 a union b 那么a 要查询3列,b也要查询3列,

2013年4月22日 21:26

相关推荐

    MySQL中union和order by同时使用的实现方法

    MySQL中union和order by是可以一起使用的,但是在使用中需要注意一些小问题,下面通过例子来说明。首先看下面的t1表。 1、如果直接用如下sql语句是会报错:Incorrect usage of UNION and ORDER BY。 SELECT * FROM ...

    union all与order by用法

    UNION ALL 与 ORDER BY 用法详解 UNION ALL 和 ORDER BY 是 SQL 语言中的两个基本操作符,分别用于合并查询结果和排序数据。在 Oracle PL/SQL 中, UNION ALL 和 ORDER BY 的使用需要遵循一定的规则和限制。本文将...

    Mysql联合查询UNION和Order by同时使用报错问题的解决办法

    因此,常常出现这样的错误 代码如下:select * from [IND] where INDID>10unionselect * from [IND] where INDID<9>10 order by INDID descunionselect * from [IND] where INDID<9 order by INDID desc此时就出现...

    group by + order by

    ### Group By 和 Order By 的使用方法及组合应用 在数据库查询语言 SQL(Structured Query Language)中,`GROUP BY` 和 `ORDER BY` 是两个非常重要的子句,它们可以帮助我们更高效地管理和展示数据。 #### GROUP ...

    SQL Server2008 Order by在union子句不可直接使用的原因详解

    在SQL Server 2008中,`UNION` 子句用于合并两个或多个 `SELECT` 语句的结果集,但不允许直接在 `UNION` 子句内部使用 `ORDER BY`。这是因为 `ORDER BY` 通常用于对查询结果进行排序,而 `UNION` 的目的是合并不同的...

    C# List OrderBy 动态多字段排序

    `OrderBy` 方法是 LINQ(Language Integrated Query) 提供的一个非常方便的排序工具,它允许我们按照一种或多种字段对数据进行升序排序。在某些情况下,我们可能需要根据动态指定的字段进行排序,这在处理复杂数据...

    为什么SQL不许在视图定义ORDER BY子句

    然而,当你尝试在创建视图时使用`ORDER BY`子句,SQL Server会报错,因为这不符合ANSI SQL-92标准。这个标准规定视图不应该包含任何影响结果集顺序的操作,如`ORDER BY`,主要是出于以下几个原因: 1. **可重用性**...

    order by 、group by 、having的用法

    在SQL查询中,`ORDER BY`、`GROUP BY` 和 `HAVING` 是三个非常重要的子句,它们分别用于不同的数据处理操作。 1. **ORDER BY** 子句: - `ORDER BY` 用于对查询结果进行排序,按照指定的字段进行升序或降序排列。...

    C# IQueryable 的动态添加 OrderBy

    自动添加 OrderBy 或者 ThenBy,只要一直调用 OrderIf 扩展函数就行。 扩展函数中将自动判断 传入的 IQueryable 是否有调用过 OrderBy 函数。

    MySQL中Union子句不支持order by的解决方法

    在MySQL中,`UNION` 子句用于合并两个或多个`SELECT`语句的结果集,但是它并不直接支持在每个`SELECT`语句后直接跟`ORDER BY`子句来对合并后的结果进行排序。这是因为`UNION`操作会先进行数据合并,然后再去除重复的...

    MyBatisPlus条件构造器带条件排序方法orderBy、orderByDesc、orderByAsc使用示例代码

    在实际开发中,我们经常需要对查询结果进行排序,MyBatisPlus为此提供了`orderBy`、`orderByDesc`和`orderByAsc`三个方法,方便我们实现条件排序。下面将详细介绍这三个方法的使用及原理。 `orderBy`方法是...

    Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出

    本文将深入探讨`ORDER BY`子句在Oracle中的排序机制,以及查询时根据`IN`条件顺序输出的方法。 首先,`ORDER BY`用于指定查询结果的排序方式,可以基于一个或多个列进行升序(ASC)或降序(DESC)排序。然而,...

    SQL语句 UNION 和 UNION ALL 使用

    - `ORDER BY` 和 `COMPUTE` 子句只能应用于整个 `UNION` 或 `UNION ALL` 的结果集,不能分别应用于每个单独的 `SELECT` 语句。 - 示例正确用法: ```sql SELECT * FROM ( SELECT AID, AName, ADemo FROM ATable ...

    Linq OrderBy

    标题 "Linq OrderBy" 和描述 "Dynamic Linq SortBy" 涉及到的是 .NET Framework 中 LINQ(Language Integrated Query,语言集成查询)的一部分,特别是如何动态地对数据进行排序。在 .NET 中,LINQ 提供了一种强大且...

    orcale 数据库中order by 的一些高级用法

    oracle数据库中order by的一些高级用法,该文件中,从order by的基本应用到order by的高级运用,该文件中均有体现

    Like-and-OrderBy.rar_sql like order by

    在SQL语言中,LIKE和ORDER BY是两个非常重要的关键字,它们分别用于数据的查询和排序。今天我们将深入探讨这两个概念,以及它们在T-SQL(Transact-SQL,微软SQL Server中的SQL方言)中的具体应用。 首先,我们来...

    union和union All的区别.md

    如果想要在 UNION 中使用 ORDER BY 对结果集进行排序,需要将 ORDER BY 子句放在最后一个查询语句的后面。这是因为 ORDER BY 对整个结果集进行排序,而最后一个查询的结果集是最终结果集的一部分,只有在最后一个...

Global site tag (gtag.js) - Google Analytics