sql将行作为列 [英] sql get rows as column

查看:103
本文介绍了sql将行作为列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆