不知道这个SQL语句怎么写?
id interid name
1000 1 a
1000 2 b
1000 3 c
1001 1 d
1002 1 e
1002 2 f
要求得到:
id name
1000 a
b
c
1001 d
1002 e
f
问题点数:20、回复次数:13Top
1 楼aqiang1979(啊强)回复于 2005-07-01 08:53:26 得分 0
upTop
2 楼phantomMan()回复于 2005-07-01 09:18:33 得分 20
create table tablename(
id int,
interid int,
[name] varchar(10)
)
insert into tablename values(1000,1,'a')
insert into tablename values(1000,2,'b')
insert into tablename values(1000,3,'c')
insert into tablename values(1001,1,'d')
insert into tablename values(1002,1,'e')
insert into tablename values(1002,2,'f')
select distinct case
when t2.id is null then cast(t1.[id] as varchar(10))
else '' end as [id],
t1.[name]
from tablename t1 left join tablename t2
on t1.id=t2.id and t1.interid>t2.interid
order by t1.[name]
Top
3 楼softj(天地客人<最近很迷茫>)回复于 2005-07-01 09:19:46 得分 0
帮你UPTop
4 楼summerICEREDTEA(从基础学起)回复于 2005-07-01 11:15:30 得分 0
MARK
没看懂 phantomMan 怎么把id置空的
:(
如果不一定要空的
我觉得可以
select id,name from tablename where interid =1
union
select null,name from tablename where interid<>1
Top
5 楼filebat(Mark)回复于 2005-07-01 12:27:23 得分 0
呵呵, 这个问题是第三次看到了.
经典问题...Top
6 楼brother2605(幽灵)回复于 2005-07-02 11:39:23 得分 0
SELECT A.id,B.name FROM tablename A RIGHT JOIN
tablename B ON A.interid=B.interid
WHERE A.interid=1
ORDER BY B.name
Top
7 楼jzdmyjzd(晓明)回复于 2005-07-02 11:56:43 得分 0
请问summerICEREDTEA(努力工作) 如何进行数据的排序呢Top
8 楼jzdmyjzd(晓明)回复于 2005-07-02 12:13:16 得分 0
可以这种写嘛!
create table tablename(
id int,
interid int,
[name] varchar(10)
)
insert into tablename values(1000,1,'a')
insert into tablename values(1000,2,'b')
insert into tablename values(1000,3,'c')
insert into tablename values(1001,1,'d')
insert into tablename values(1002,1,'e')
insert into tablename values(1002,2,'f'
Select Case When t1.interid = 1 Then t1.id Else Null End ,t1.name
from tablename t1 left join tablename t2
on t1.id=t2.id and t1.interid = t2.interid
Top
9 楼jzdmyjzd(晓明)回复于 2005-07-02 12:14:27 得分 0
Select Case When t1.interid = 1 Then t1.id Else Null End As ID ,t1.name
from tablename t1
Top
10 楼Yisa()回复于 2005-07-02 15:43:16 得分 0
樓主,根据你想要的結果數据, 可以猜想你的id是字符型的.
如果id确實是字符型, 請試下面語句, 應該可以解決的.
select id=case when interid=(select min(interid) from Table1 a where a.id=b.id) then id else '' end, name
from Table1 b
Top
11 楼tian790317()回复于 2005-07-04 08:22:27 得分 0
upTop
12 楼jzdmyjzd(晓明)回复于 2005-07-04 13:29:48 得分 0
Select Case When interid = 1 Then id Else Null End As TempID ,name
from tablename Order By id Asc ,interid Asc
或者
Select Case When interid = 1 Then id Else '' End As TempID ,name
from tablename Order By id Asc ,interid Asc
Top
13 楼smin1994(smin1994)回复于 2005-07-08 11:03:37 得分 0
学到新东西 :)Top




