求Distinct消除重复项复杂一点的问题
a b c
----------------------
x y z
x a u
x y a
y j q
返回 一个a=x 的所有所有字段 和一个x
问题点数:20、回复次数:9Top
1 楼posonhuang(自知才疏学浅)回复于 2005-06-03 15:03:56 得分 0
你的问题问得不清楚?
是返回a=x的所有的值,还是单单字段?Top
2 楼hglhyy(為人民币服务!)回复于 2005-06-03 15:04:10 得分 0
你要一个什么样的结果??
你把结果集帖出来Top
3 楼hsj20041004(光芒)回复于 2005-06-03 15:15:14 得分 0
select a=case when a='x' then '' else a end ,b,c
from tablename where a='x'Top
4 楼zdnetchina(天天向上)回复于 2005-06-03 23:04:34 得分 0
x y z
a u
y a
返回这样的结果集Top
5 楼zdnetchina(天天向上)回复于 2005-06-03 23:30:45 得分 0
x y z
a
a uTop
6 楼paoluo(一天到晚游泳的鱼)回复于 2005-06-03 23:33:45 得分 5
Select
(Case When Exists (Select 1 from tableName Where a=T1.a And b<T1.b) Then '' Else a End) As a,
b,
c
from TableName T1
Where a='x'Top
7 楼paoluo(一天到晚游泳的鱼)回复于 2005-06-03 23:34:55 得分 5
没看到你的后一个回帖,所以语句还是有问题。Top
8 楼filebat(Mark)回复于 2005-06-03 23:52:01 得分 0
--测试使用的数据
create table ta(a char, b char, c char)
go
insert ta select 'x', 'y', 'z'
union all select 'x', 'a', 'u'
union all select 'x', 'y', 'a'
union all select 'y', 'j', 'q'
go
select *
from ta
where a='x'
Top
9 楼filebat(Mark)回复于 2005-06-03 23:53:03 得分 10
--我写的,思路就是先用top找出第一条记录.再求出满足条件的记录(除第一条外),并排序
select *
from
(
select top 1 *
from ta
union
select '' as a, t1.b, t1.c
from ta as t1, (select top 1 t2.b, t2.c
from ta as t2
where t2.a='x'
) t3
where t1.a='x'
and (t1.b<>t3.b or t1.c<>t3.c)
) tt
order by tt.a descTop




