一个比较难的SQL问题

JJONY 2002-01-10 09:36:46
现在我有一个表TABLE,其中字段为FIELD1,FIELD2,FIELD3,FIELD4

而每条记录中FIELD1~FIELD3的值可能是重复的,那么现在我要查询记录,
如果FIELD1~FIELD3有重复的就只取其中一条,而结果集要是
FIELD1,FIELD2,FIELD3,FIELD4。

要求这个查询用一条SQL完成。
...全文
1641 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfans2002 2002-02-19
  • 打赏
  • 举报
回复
select语句中有一个参数distinct,它的意义就是防止出现重复数据
select distinct * from table

bistar 2002-01-13
  • 打赏
  • 举报
回复
g z
dnazj 2002-01-13
  • 打赏
  • 举报
回复
感觉你的数据库结构设计的不是太好
wyb_45 2002-01-12
  • 打赏
  • 举报
回复
数量不大的话,分组好啦。
问题是
如果FIELD1~FIELD3的值是重复,其它字段怎么处理,是求和还是求平均数、max、min
cxchina 2002-01-12
  • 打赏
  • 举报
回复
select * from Table inner join (select distinct field1,field2,field3 from Table)
as Table2 on Table.field1=Table2.field1 and Table.Field2=Table.Field2 and
Table.Field3=Table2.Field3
szwxj 2002-01-12
  • 打赏
  • 举报
回复
其它的不知道,如果是oracle

select * from table where rowid in (
select min(rowid) from table group by field1||field2||field3||field4
having count(*)>1)
szwxj 2002-01-12
  • 打赏
  • 举报
回复
其它的不知道,如果是oracle

select * from table where rowid in (
select min(rowid)
bigtree21cn 2002-01-12
  • 打赏
  • 举报
回复
我贊同Francky的方法﹐只是應該:
SELECT * FROM ttt
WHERE ((fldn + fld2 + fld3 + fld4) IN
(SELECT MIN(fldn) + fld2 + fld3 + fld4 FROM ttt
GROUP BY fld2, fld3, fld4))
Soft21 2002-01-12
  • 打赏
  • 举报
回复
我在等待大家的答案,呵呵!
hssfox 2002-01-12
  • 打赏
  • 举报
回复
kk
zengting 2002-01-12
  • 打赏
  • 举报
回复
unique
zenartus 2002-01-11
  • 打赏
  • 举报
回复
我赞成用存储过程,这是ms-sql的一大有力武器
我也觉得你的数据库没设计好
wx_zhang 2002-01-11
  • 打赏
  • 举报
回复
用存储过程嘛,用户也只需要连一次,而且易于维护
lily0000000 2002-01-11
  • 打赏
  • 举报
回复
用select distinct field1,field2,field3,field4 from....
就可以取出不重复的记录了。
JJONY 2002-01-10
  • 打赏
  • 举报
回复
但现在我又有一个问题了,就是像要这样操作的表有很多,但每个表的字段也很多,
FILELD1~FIELDn有十几个。我每一个都加到Group by 不就累死了,维护起来也不好搞。

还有更好的办法吗?

分数我一定会给的!
panther_totem 2002-01-10
  • 打赏
  • 举报
回复
UP!!!
larson 2002-01-10
  • 打赏
  • 举报
回复
难道你的200分是不给的
superjj2002 2002-01-10
  • 打赏
  • 举报
回复
同意楼上的
其中一条?哪一条?
N_chow 2002-01-10
  • 打赏
  • 举报
回复
Select Field1,Field2,Field3,min(field4) as Field4 From tableName
Group by Field1,Field2,Field3
KingSunSha 2002-01-10
  • 打赏
  • 举报
回复
修正一下,加上当前的user_id(cur_user_id)
select opp.* from opp, customer cust
where opp.cust_id = cust.cust_id
and exists (select 'x' from customer_assign ca
where ca.user_id = cust.user_id
and IsParent(ca.user_id, cur_user_id));
加载更多回复(18)

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧