文章来源: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最大的纪录
请问两个数据库之间如何进行数据追加? 问题: 例如: > 数据库A中有 BM,DWMC,BMMC等域,表单名TEST1 > 数据库B中也有 BM,DWMC,BMMC等域,但有部分域数据库A中没有,表单名TEST2 > 在数据库A中录入文档,进行...> 一条纪录)
IN关键字可以判断某个字段的值是否在指定的集合中。如果字段的值在集合中,则满足查询条件,该纪录将被查询出来。如果不在集合中,则不满足查询条件。其语法规则如下:[ NOT ] IN ( 元素1, 元素2, …, 元素n ) [sql...
生成记录:可以实现对数据库端数据表添加一条或多条纪录的自动成批添加操作。 删除记录:可以实现对数据库端数据表中的记录作批量的条件删除操作。 复制记录:可以实现将数据库中某表向另一表中批量复制记录的...
Sqlite Developer是一个非常非常好的管理工具,有点象Mssql企业管理器,支持多国语言 强大的SQL编辑器: Sqlite Sql语法高亮;Sql编辑历史;Sql关键字自动完成;括号高亮匹配;表,字段名自动完成;自动SQL...
现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里...然后向这个表写入一条测试纪录 那么现在开始我们的jsp和数据库之旅吧。
向my_employee表中添加首条纪录,要求不在insert语句中使用字段列表 (4).向my_employee表中添加第二条纪录,要求在insert语句中使用字段列表 (5).验证数据是否添加成功 (6).使数据的添加成为永久...
现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以这篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的...然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧。
现在有好多初学JSP的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里...然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧。
查询并显示第一条记录的时间应小于3秒。页面切换时间不大于2秒。切换至分析状态不大于3秒。平均程序错误率不应大于1次/页面。(查询显示时间与系统硬件资源和系统的数据量有关,只能在一定条件下满足。) 3.2.5 故障...
然后向这个表写入一条测试纪录 一、jsp连接Oracle8/8i/9i数据库(用thin模式) testoracle.jsp如下: ;charset=gb2312"%> <%@ page import="java.sql.*"%> <html> <body> ("oracle.jdbc.driver.OracleDriver...
然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 varchar(20),然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧...
在未做全文检索以前,个人主页只能对Fs_Title(文章标题)字段进行模糊查询(like ‘%*%’),如果对内容进行模糊查询,速度极慢,有时还可能报错,今天终于有空了,把这个查询做好了,经过测 试,检索一万条纪录不到两...
3:节目预览,选中一条节目,用鼠标左键双击,小窗口播出该条节目。 4:播出中临时改变节目单:右键弹出“替换节目”“删除”“添加”按钮,可以对节目进行添加、删除、替换处理。 5:节目单报错:播出程序的...
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. 简介 ...