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 
  • 相关阅读:
    winform窗口打开特效及窗口位置居中
    C# Installer Projects 打包工具
    C#
    MVVM模式开发WinForm-ReactiveUI
    C#实现类似百度网盘、育网校园云盘在“我的电脑”磁盘驱动器
    MVVM框架
    自制2048小游戏
    一个无限循环轮播图 HCCycleView
    Xcode插件及cocoapods不能正常使用的解决方法
    Runtime — 运行时机制
  • 原文地址:https://www.cnblogs.com/zhaoguan_wang/p/1647744.html
Copyright © 2011-2022 走看看