zoukankan      html  css  js  c++  java
  • 问的问题的答案~

    原文发布时间为:2008-10-19 —— 来源于本人的百度文章 [由搬家工具导入]

    有两张表
    Test表 Paper表
    User Paper User Paper Score
    1 1 1 1 80
    2 1 2 1 81
    2 1 82
    2 2 83
    3 1 84


    1、帮我写一条语句,把Paper中的 两个 (2 1 81), (2 1 82)只保留前一条记录,就是表中如果存在(User,Paper)相同的,只保留第一条记录;
    如上表删除后结果为:

    User Paper Score
    1 1 80
    2 1 81
    2 2 83
    3 1 84


    2、帮我写一条 Select 语句,结合 Test 与Paper,使Paper中的(User,Paper)与Test中的(User,Paper)相等,但是只能取第一条记录;如上表取的结果是

    User Paper Score
    1 1 80
    2 1 81
                                   

    select [User],[Paper],min([Score]) as [Score]
    from
    (
    select t.[User],t.[Paper],p.[Score]
    from [Test] t
    left join [Paper] p
    on t.[User]=P.[user] and t.[Paper]=p.[Paper]
    ) a
    group by [User],[Paper]

    1、group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面

    2、from 后面必须跟着表
    这句子查询里的查询结果相当于构建了一张新表 a就是这张新表的名字

  • 相关阅读:
    SQl 事务 异常和游标
    SHarepoint 2007 内容类型
    如何在Sharepoint 2010 中使用Session
    Jquery 选择器
    学习资料
    创建自定义主机头网站集
    MOSS Single Sign On Setup StepByStep
    toolip 属性小知识
    基于多层结构的网络游戏平台的研究与应用
    Jabber 技 术 概 况
  • 原文地址:https://www.cnblogs.com/handboy/p/7141597.html
Copyright © 2011-2022 走看看