如何将列名称作为具有值的行 [英] How to get Column names as rows with values

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

问题描述



我有以下数据

Hi,
I have some data as follows

coverage services medical
  500      1000    1500



i需要sql输出如下


i need sql output as follows

type    desc     value
 A     coverage   500
 B     services   1000
 C     medical    1500 





提前致谢



Thanks in advance

推荐答案

试试这个解决方案我在AdventureWorks2008数据库中试过它



Try with this solution I have tried it in AdventureWorks2008 Database

USE AdventureWorks2008

SELECT ColName,data
FROM HumanResources.vEmployee
UNPIVOT
(
	Data
	For ColName IN ([FirstName],[EmailAddress])
)Unpiv


Create Table #Temp
		(
		coverage Real,
		services Real,
		medical Real
		)

Insert into #Temp 
Values(500,1000,1500)

Select Char(64+Row_Number() Over(Order by value)) [type],[desc],[value] 
From 
   (Select coverage,services,medical From #Temp)p
UNPIVOT 
   (value for [desc] in (coverage,services,medical)) unpvt

-- Output:
--type	desc	   value
-----	-------    ------
--A	coverage   500
--B	services   1000
--C	medical	   1500

Drop Table #Temp 


这是一个显示如何转换的示例一个数据表的列到另一个数据表



这里的数据表列dtm是转换后的行数dt



this is an example to show how to convert columns of one data table to another data table

here columns of data table dtm is converted rows of dt

for (int i = 0; i < dtm.Columns.Count; i++)
                    {
                        DataRow newRow = dt.NewRow();
                        newRow[0] = dtm.Columns[i].Caption;
                        for (int j = 0; j < dtm.Rows.Count; j++)
                        {
                            if (dtm.Rows[j][i].ToString() != "")
                                newRow[j + 1] = dtm.Rows[j][i].ToString();
                        }
                        dt.Rows.Add(newRow);
                    }







i建议你不要搜索sql查询来转换你的所有数据数据表然后转换它




i suggest u instead of searching sql query for converting take all your data in data table then convert it


这篇关于如何将列名称作为具有值的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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