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就是这张新表的名字

  • 相关阅读:
    一般处理程序页ashx 序列化 Json数组
    SQL server 分页
    MySQL 分页
    获取网站的BaseURL
    java学习书籍推荐
    查询并关闭指定端口进程
    ettercap使用
    MS10-046漏洞利用
    MS12-020漏洞利用
    入侵安卓手机
  • 原文地址:https://www.cnblogs.com/handboy/p/7148440.html
Copyright © 2011-2022 走看看