`
flm_llx
  • 浏览: 60629 次
  • 性别: Icon_minigender_1
  • 来自: 应县
社区版块
存档分类
最新评论

SQL返回某个单表中存在相同字段值纪录中的一条纪录!

阅读更多
文章来源:CSDN社区 - 原文地址:http://topic.csdn.net/t/20050817/18/4214856.html
比如某个表:  
        id         stuNo         stuName       stuAddress       stuTel             remark    
          1           111               aa                     aaa               8888               aaaaa  
          2           111               bb                     bbb               6666               bbbbb  
          3           111               cc                     ccc               6666               ccccc  
          4           222               dd                     ddd               6666               ddddd  
          5           333               ee                     eee               5555               55555  
   
  目前,stuNo字段中有三条记录(id为1,2,3)是相同的,都为“111”,请问怎么写SQL才能返回此三条记录中的随便某一个纪录呢?随便返回id为1,2,3中的某一条记录而不是返回单个字段。
方法1:
select     *  
  from   表名   as   t1  
  where   id   in  
  (select   top   1   id  
    from   表名   as   t2  
    where   t1.stuno=t2.stuno  
    order   by   newid())
方法2:
select   *  
   
  from   表   a  
   
  where   id=(select   max(id)  
                      from   表  
                      where   stuNo=a.stuNo  
                      )
方法3:
declare   @tab   table(id   int,stuNo   varchar(10),stuName   varchar(10),stuAddress   varchar(10),stuTel   varchar(10),remark   varchar(10))  
  insert   @tab   values(1,'111','aa','aaa','8888','aaaaa')  
  insert   @tab   values(2,'111','aa','aaa','8888','aaaaa')  
  insert   @tab   values(3,'111','aa','aaa','8888','aaaaa')  
  insert   @tab   values(4,'222','dd','ddd','6666','ddddd')  
  insert   @tab   values(5,'333','ee','eee','5555','55555')  
  --查看原始数据  
  select   *   from   @tab  
   
   
  --删除重复数据  
  delete   from     @tab   where   id   not   in   (select     max(id)     from     @tab     group     by   stuNo,stuName,stuAddress,stuTel,remark)  
  --查看结果  
  select   *   from   @tab  
方法4:
select   *   from   table1  
  group   by   stuNo          
  having   count(*)>1
方法5:
随机取值:  
   
  select   *   from   表   t  
  where   id=  
                        (  
                            select   top   1   id  
                            from   表    
                            where   stuNo=t.stuNo  
                            order   by   newid()  
                        )  
   
  取id最大值:  
   
  select   *   from   表   t  
  where   not   exists  
                                  (  
                                      select   1   from   表  
                                      where   stuNo=t.stuNo   and  
                                                  id>t.id  
                                  )  
   
  取id最小值:  
   
  select   *   from   表   t  
  where   not   exists  
                                  (  
                                      select   1   from   表  
                                      where   stuNo=t.stuNo   and  
                                                  id<t.id  
                                  )  
 
方法6:
select   *  
    from   表名  
  where   Id   in   (select   Max(id)  
                              from   表名   as   t1  
                            grou   by   stuNo  
                            having   Count(*)   >   1)  
  随机取值也可以按   vivianfdlpw()   (   )   思路来做Top
方法7:
select   *  
  from   表   a  
  where   id=(select   max(id)  
                      from   表  
                      where   stuNo   =   a.stuNo  
                      )  
  方法8:
select   *   from   a   where   id   in   (select   max(id)   from   a   group   by   stuno   )  
   
  or    
   
  select   *   from   a   where   id   in   (select   min(id)   from   a   group   by   stuno   ) 
分享到:
评论

相关推荐

    对某一字段分组后,取出另一字段最大值的所有记录

    表:t_test -------------------------------------- id(int) cost(int) des Autoid(id) -------------------------------------- 1 10 aaaa 1 1 15 bbbb 2 1 20 cccc 3 ...取每一类id中cost最大的纪录

    实现两个数据库间的数据追加

    请问两个数据库之间如何进行数据追加? 问题: 例如: &gt; 数据库A中有 BM,DWMC,BMMC等域,表单名TEST1 &gt; 数据库B中也有 BM,DWMC,BMMC等域,但有部分域数据库A中没有,表单名TEST2 &gt; 在数据库A中录入文档,进行...&gt; 一条纪录)

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    IN关键字可以判断某个字段的值是否在指定的集合中。如果字段的值在集合中,则满足查询条件,该纪录将被查询出来。如果不在集合中,则不满足查询条件。其语法规则如下:[ NOT ] IN ( 元素1, 元素2, …, 元素n ) [sql...

    中文编程软件雅奇880 2012企业版免费破解版

     生成记录:可以实现对数据库端数据表添加一条或多条纪录的自动成批添加操作。  删除记录:可以实现对数据库端数据表中的记录作批量的条件删除操作。  复制记录:可以实现将数据库中某表向另一表中批量复制记录的...

    Sqlite Developer(SQL管理工具) v3.9.7 简体中文版.zip

    Sqlite Developer是一个非常非常好的管理工具,有点象Mssql企业管理器,支持多国语言   强大的SQL编辑器: Sqlite Sql语法高亮;Sql编辑历史;Sql关键字自动完成;括号高亮匹配;表,字段名自动完成;自动SQL...

    jsp连接数据库(oracle,sqlserver,mysql等10多种数据库)大全(您的必备)

    现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里...然后向这个表写入一条测试纪录 那么现在开始我们的jsp和数据库之旅吧。

    Oracle数据库基础学习资料整合

    向my_employee表中添加首条纪录,要求不在insert语句中使用字段列表 (4).向my_employee表中添加第二条纪录,要求在insert语句中使用字段列表 (5).验证数据是否添加成功 (6).使数据的添加成为永久...

    JSP连接数据库大全

    现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以这篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的...然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧。

    JSP连接各类数据库大全

    现在有好多初学JSP的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里...然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧。

    快递运输管理系统深深深试试

    查询并显示第一条记录的时间应小于3秒。页面切换时间不大于2秒。切换至分析状态不大于3秒。平均程序错误率不应大于1次/页面。(查询显示时间与系统硬件资源和系统的数据量有关,只能在一定条件下满足。) 3.2.5 故障...

    jsp连接数据库大全

    然后向这个表写入一条测试纪录 一、jsp连接Oracle8/8i/9i数据库(用thin模式) testoracle.jsp如下: ;charset=gb2312"%&gt; &lt;%@ page import="java.sql.*"%&gt; &lt;html&gt; &lt;body&gt; ("oracle.jdbc.driver.OracleDriver...

    在JSP中访问数据库大全

    然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 varchar(20),然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧...

    全文检索技术 sql server

    在未做全文检索以前,个人主页只能对Fs_Title(文章标题)字段进行模糊查询(like ‘%*%’),如果对内容进行模糊查询,速度极慢,有时还可能报错,今天终于有空了,把这个查询做好了,经过测 试,检索一万条纪录不到两...

    硬盘播出系统说明

    3:节目预览,选中一条节目,用鼠标左键双击,小窗口播出该条节目。 4:播出中临时改变节目单:右键弹出“替换节目”“删除”“添加”按钮,可以对节目进行添加、删除、替换处理。 5:节目单报错:播出程序的...

    ZendFramework中文文档

    10.5.8. 取回一条记录 10.5.9. 取回多条记录 10.5.10. Adding Domain Logic 10.6. Zend_Db_Table_Row 10.6.1. 简介 10.6.2. 取回一条记录 10.6.3. 修改数据 10.7. Zend_Db_Table_Rowset 10.7.1. 简介 ...

Global site tag (gtag.js) - Google Analytics