zoukankan      html  css  js  c++  java
  • 整理最近新学到的几种sql写法(二)“取得每个班里的前两名”

    我们经常会遇到如“取得每个班里的前两名”之类的问题,解决方法如下:

    代码
     1 CREATE TABLE t2
     2 (
     3     id INT IDENTITY,
     4     vUserName NVARCHAR(50),
     5     vClassName NVARCHAR(50),
     6     iGrade    int
     7 )
     8 
     9 
    10 INSERT INTO [t2] (
    11     [vUserName],
    12     [vClassName],
    13     [iGrade]
    14 
    15 SELECT 'user1''class1'20
    16 UNION
    17 SELECT 'user2''class1'40
    18 UNION 
    19 SELECT 'user3''class2'30
    20 UNION
    21 SELECT 'user4''class1'50
    22 UNION
    23 SELECT 'user5''class1'30
    24 UNION
    25 SELECT 'user6''class2'40
    26 UNION
    27 SELECT 'user7''class2'34
    28 
    29 SELECT    *
    30 FROM    [t2]
    31 
    32 --1
    33 SELECT    *
    34 FROM    [t2] AS t
    35 WHERE    t.[id] IN (
    36             SELECT    TOP 2 [id]
    37             FROM    [t2] AS s
    38             WHERE    t.[vClassName] = s.[vClassName]
    39             ORDER BY s.[iGrade] DESC
    40             )
    41 
    42 --2
    43 SELECT    * 
    44 FROM    [t2] T 
    45 WHERE    CHECKSUM(*IN (
    46             SELECT TOP 2  CHECKSUM(*
    47             FROM    [t2] 
    48             WHERE    [vClassName]=t.[vClassName] 
    49             ORDER BY [iGrade] DESC
    50         )
    51             
    52 --3
    53 SELECT    *
    54 FROM    [t2] AS t
    55 WHERE    2 >= (
    56             SELECT COUNT(1)
    57             FROM [t2] AS s 
    58             WHERE t.[vClassName] = s.[vClassName] 
    59                 AND t.[iGrade] <= s.[iGrade]
    60             )
    61 
  • 相关阅读:
    数据库与数据仓库的区别
    MySQL数据库与表的最基本命令大盘点
    SQL Server 2008创建数据库
    [HttpClient]简单使用GET请求
    [HttpClient]HttpClient简介
    [jQuery编程挑战]003 克隆一个页面元素及其相关事件
    [设计模式]观察者模式
    [jQuery编程挑战]002:实现一个转盘大抽奖
    [设计模式]备忘录模式
    [javascript]String添加trim和reverse方法
  • 原文地址:https://www.cnblogs.com/zhaoguan_wang/p/1647744.html
Copyright © 2011-2022 走看看