查询同字段相同记录大于或等于1的记录,并每一类只显示一个的查询
如上图,这个表是查询结果,上图是查询结果:
SELECT TOP (100) PERCENT 表1.F_iID, ……
FROM 表1 INNER JOIN 表2
ON 表1.F_sAddress =表2.address
ORDER BY 表1.F_iID
在这个查询结果的基础上,想让F_iID为2、3、6……的记录只有一条,就是当有多条记录时显示唯一一条记录,除了F_iID字段,其他字段也要,改变的只是行数
怎么实现?
我自己的回答只是暂时先用来作为一个比较好的解决方法吧!
我觉得应该有更理想的解决方法,学习中,希望大家给给意见、建议~~~
自己解决:
SELECT np.F_sName,left( substring(np.F_sName,charindex('%',np.F_sName)+1,len(np.F_sName)) ,
patindex('%[0-9(]%',substring(np.F_sName,charindex('%',np.F_sName)+1,len(np.F_sName) )+'0' )-1 ) AS shortname,np.F_iid
--去掉前后的12%(浓度百分比)之类的对象
FROM nzProduct np
WHERE np.F_iid IN(
SELECT DISTINCT(ns.F_iRes) FROM nzSaleRecord ns )
用其他表格的数据来限制,我的知识有限,无法判断谁的答案较好。谢谢
先查出重复数据的最大或最小ID号 再直接查ID在那个范围就可以了
问题简介点就是:分组取每组第一条。百度下,方法很多的。
select * from A
where A.id in
(select min(a.id) from a
group by a.term)