iT邦幫忙

0

SQL語法 將所有明細資料排成一列

請問大大

不是 將多筆資料合併為一筆顯示(FOR XML PATH)
而是將多筆資料分欄顯示
假設有主A/明細B兩檔, 明細項目有 3 項
希望得到的結果是 A1, B11, B12, B13 等四個欄位
A B


A1, B11, B12, B13
A2, B21, B22, B23
A3, B31, B32, B33

看更多先前的討論...收起先前的討論...
fillano iT邦超人 1 級 ‧ 2016-07-13 16:02:51 檢舉
A表跟B表有關連的話,直接用join就好了吧?
尼克 iT邦高手 1 級 ‧ 2016-07-13 16:41:18 檢舉
ROW TO COLUMN ?
joy036 iT邦研究生 4 級 ‧ 2016-07-14 07:26:23 檢舉
對 ROW TO COLUMN
fillano iT邦超人 1 級 ‧ 2016-07-14 09:36:03 檢舉
了解XD

2 個回答

2
wybeen
iT邦新手 5 級 ‧ 2016-07-14 08:59:54
最佳解答

我覺得你需要的是 動態的 PIVOT
參考德瑞克的作法 http://sharedderrick.blogspot.tw/2013/02/pivot-dynamic-pivot.html
A1, A2, A3 ... 要轉成 FOR 的條件
ex.

declare @str varchar(max)
declare @tbl table(
	catg varchar(2)
)
insert into @tbl values('A1'),('A2'),('A3')
select @str = case when @str is null then '''' else @str + ',''' end + catg + ''''
from @tbl
select @str
0
做工仔人!
iT邦高手 1 級 ‧ 2016-07-13 17:36:35

基本上版大這個問題是有點奇怪.
如果 A 有 1000筆資料/B也是1000筆時.結果就會很長的一串!
這段語法的功用是什麼 ?

joy036 iT邦研究生 4 級 ‧ 2016-07-14 07:22:35 檢舉

A通常僅1~2筆,主要是將B的固定項目與顯示成一列,
想請問除了將B的每一個項目寫成一個子查詢然後JOIN起來外
是否有另外較簡捷的寫法.

我要發表回答

立即登入回答