返回输出我有两个表sql查询与加入的帮助或子查询
Table1 Table2
id Name id table1id Name
1 A 1 1 a
2 B 2 1 aa
3 C 3 1 aaa
4 2 b
5 2 bb
我想输出 名1名2
A a
aa
aaa
B b
bb
返回输出我有两个表sql查询与加入的帮助或子查询
Table1 Table2
id Name id table1id Name
1 A 1 1 a
2 B 2 1 aa
3 C 3 1 aaa
4 2 b
5 2 bb
我想输出 名1名2
A a
aa
aaa
B b
bb
试试这个:
Declare @Table1 table
(id int ,name varchar(10))
Insert into @Table1
values
(1,'A'),
(2,'B'),
(3,'C')
Declare @Table2 table
(id int,tableid int ,name varchar(10))
Insert into @Table2
values
(2, 1,'aa'),
(3, 1,'aaa'),
(4, 2 ,'b'),
(5,2,'bb')
;With cte(Name1,Name2,rn) as
(Select t1.name ,t2.name,
row_number() over (partition by t1.name order by t1.id) as rn
from @table1 as t1 inner join @Table2 as T2
on t2.tableid=t1.id
)
Select case when rn=1 then name1 else '' end as c1,
name2
from cte
您可以删除OVER()子句中的第二个SELECT,而不是使用t1.id来排序。 – 2013-03-15 14:30:02
谢谢。我其实正在尝试选择0.没有注意到用于排序的列 – praveen 2013-03-17 02:15:10
我试着左加入 – 2013-03-15 12:15:32
它给了我重复输出三次,但我只想单一A – 2013-03-15 12:16:14
你知道吗,你应该真的在前端做你的格式。 – 2013-03-15 12:17:06