sql将行作为列 [英] sql get rows as column
问题描述
从一个Table_1中选择行作为列,并从Table_3中分配值
Table_1
id ------ Name
1 ------ A
2 ------ B
3 ------ C
4 ------ D
表2
id ------ invoice_no
1 ------ inv-1
2 ------ inv-2
3 ------ inv-3 < br $>
Table_3
id ------ Table_1_id ------ Table_2_id ------ value
1 ------ 1 ------ 1 ------ p
2 ------ 2 ------ 1 - ----- q
3 ------ 3 ------ 1 ------ r
4 ----- -4 ------ 1 ------ s
5 ------ 1 ------ 2 ------ t
6 ------ 2 ------ 2 ------ u
7 ------ 1 ------ 3 - ----- v
答案
Table_2_id ------- A ------- B-- ----- C ------- D
1 --------------- p ------- q --- ---- r ------- s
2 --------------- t ------- u ---- --- -------
3 --------------- v ------- ------- ---- ---
select row as column from one Table_1 and assign values from Table_3
Table_1
id------Name
1------A
2------B
3------C
4------D
Table_2
id------invoice_no
1------inv-1
2------inv-2
3------inv-3
Table_3
id------Table_1_id------Table_2_id------value
1------1 ------1 ------p
2------2 ------1 ------q
3------3 ------1 ------r
4------4 ------1 ------s
5------1 ------2 ------t
6------2 ------2 ------u
7------1 ------3 ------v
Answer
Table_2_id-------A-------B-------C-------D
1---------------p-------q-------r-------s
2---------------t-------u------- -------
3---------------v------- ------- -------
推荐答案
我需要交叉表类型输出。
所以这里我举一个例子希望能帮到你。
I thing you required cross table type output.
So here I am putting an example that hope will help you out.
select * from Table_1
pivot (max (id) for Name in ([A],[B],[C],[D])) as NameIDDets
你可以自定义它和谷歌有关ms sql server pivot的更多细节。
祝你有个美好的一天!!!
You can customized it and google about ms sql server pivot for more details.
Have a good day !!!
>
这篇关于sql将行作为列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!