SQL 查询结果中得到指定列唯一的结果

SQL查询结果中得到如下结果:1.A1B1C1D12.A1B1C2D23.A1B2C3D3我希望得到下面结果1.A1B1C1D13.A1B2C3D3A和B在结果中要唯一,... SQL 查询结果中得到如下结果:
1. A1 B1 C1 D1
2. A1 B1 C2 D2
3. A1 B2 C3 D3
我希望得到下面结果
1. A1 B1 C1 D1
3. A1 B2 C3 D3

A和 B 在结果中要唯一, C D选择首次出现的。
请写出SQL 语句。谢谢。
select distinct A, B, C, D from table
展开
 我来答
pw33
2011-12-21 · TA获得超过241个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:220万
展开全部
select a,b,c,d from t where id in(select min(i) from t group by a,b)
追问
没有ID, 没有i
追答
1. A1 B1 C1 D1 
2. A1 B1 C2 D2
3. A1 B2 C3 D3
中1.2.3.只是你的行号?
select a,b,min(c) c,min(d) d from t group by a,b
以上可以满足你的要求。建议加主键
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyingFish211
2011-12-21 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
select *
from (select distinct A, B, C, D from table) t1
where not exists (select 1 from (select distinct A, B, C, D from table) t2 where t1.A = t2.A and t1.B = t2.B and (t1.c > t2.C OR t1.D > t2.D)
追问
貌似你这个太复杂了,能简单点吗?
追答
逻辑上没有了,除非你A, B一定,C得最小是唯一的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清风泉
2011-12-23 · 超过14用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:38.6万
展开全部
SELECT * INTO #t FROM (
SELECT 1 SID, 'A1' A ,'B1'B, 'C1'C, 'D1'D
UNION ALL
SELECT 2 SID, 'A1' A ,'B1'B, 'C2'C, 'D2'D
UNION ALL
SELECT 3 SID, 'A1' A ,'B2'B, 'C3'C, 'D3'D)a

SELECT * FROM (
select ROW_NUMBER() OVER (PARTITION BY A,B ORDER BY SID)hh,* from #t
)a WHERE hh = 1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式