返回輸出我有兩個表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