sql如何选择满足条件的第一条

比如有这样一个表
Table "Products"(ProductName,ProductSize)
ProductName ProductSize
螺丝 5
螺丝 4
螺帽 4
钉子 6
钉子 3

我现在想要查询出 每一类,并且只查第一条
想要的结果 应该是
ProductName ProductSize
螺丝 5
螺帽 4
钉子 6

第1个回答  2012-02-06
select identity(int,1,1) as id ,ProductName,ProductSize into #temp from 表
select ProductName,ProductSize from #temp where id in(select min(id) from #temp group by ProductName)
drop table #temp本回答被提问者采纳
第2个回答  2012-02-06
SELECT ProductName,MAX(ProductSize)
FROM Products
GROUP BY ProductName追问

不好意思,可能我举的例子不够详细,我要的是第一条,而不是最大的一条,谢谢

第3个回答  2012-02-06
select * from Products GROUP BY ProductName

sql如何选择满足条件的第一条
select identity(int,1,1) as id ,ProductName,ProductSize into #temp from 表 select ProductName,ProductSize from #temp where id in(select min(id) from #temp group by ProductName)drop table #temp

sql问题:相同id情况下,如何按时间逆序取符合条件的第一条数据。
使用分析函数row_number() over (partiion by ... order by ...)来进行分组编号,然后取分组标号值为1的记录即可。目前主流的数据库都有支持分析函数,很好用。其中,partition by 是指定按哪些字段进行分组,这些字段值相同的记录将在一起编号;order by则是指定在同一组中进行编号时是按照怎样的...

SQL语句如何实现批量update符合条件的第一条记录?
题主你好,解题思路: 首先利用class进行分组, 然后利用min(idx)将每个class中的第一条记录选出来,作为我们更新flag字段的条件.--- 测试截图如下:.因为不知道题主的表名叫什么,测试时表名用的是Information,语句里题主只需要将两处Information替换为自己实际的表名即可.=== 希望可以帮到题主, 欢迎追问...

SQL查询的时候有多个满足的条件我只想返回第一个结果就行,该怎么改...
用 top 1来返回一行,用 datediff(day,t1.FcheckDate, getdate())as 账龄 来进行日期相减 Select top 1 u2.fnumber as 仓库代码,u2.FName as 仓库名称,ti.fnumber as 物料代码 ,ti.FName as 物料名称 ,ti.FModel as 型号,u1.FBatchNo as 批号,tm.FName as 基本单位,cast(u1.FQty ...

SQL中select语句如何过滤出字段中第1位数字符合设定条件的行
假设表名为table1,第一列列名为column1,则查询出第一位是“4”的记录:select * from table1 where left(cast(column1 as varchar(255)),1)='4'查询出第一位不是“4”的记录:select * from table1 where left(cast(column1 as varchar(255)),1)<>'4'...

在SQL sever中当查询到某一列中满足条件的某一行,如何提取这一行进行...
用存储过程 r = select ... where...然后使用@r操作 === result = select * from 实验1 where 句子 like '%科学%大脑%'create table #tabC(v vchar(100))while {使用游标循环 weizhi1 = charIndex(科学);weizhi2 = charIndex(大脑);if @weizhi2-@weizhi1 <50 insert #tabC tabC就是...

一个关于sql查询 OR 的问题,如果同时存在满足条件的关系,怎么样能以第...
既然你只取第一个条件那为什么不写一个条件,而是写两个?select t0.from t_table0 t0 inner join t_table1 t1 where t0.C_ID1 = t1.C_P_ID

sql="select top 1 ID,NAME,AGE from USER Where NAME='"&UserName&...
select 查询 top1结果中第一条记录 ID列 Name列 AGE列 from USER从USER表中操作 where满足条件NAME='"&UserName&"的记录 top1 是之现实查到的记录中的第一条记录。如果查到两条呢。 一般ID是唯一的,UserName不一定是唯一的。如果查到了两条或多条。那也只现实第一条记录。这个语句的ID Name ...

...的重复记录数大于2时则选出表中最新满足条件的一条记录
表名:chongfu SELECT TOP 1 a, COUNT(a) AS cis FROM chongfu GROUP BY a '把所有数据都读出来 SELECT TOP 1 * FROM (SELECT a, COUNT(a) AS cis FROM chongfu GROUP BY a) DERIVEDTBL WHERE (cis > 2) '把所有数据都读出来 取出第一条 ...

怎样编写sql语句条件 让其先满足条件1,再满足条件2
用or

相似回答