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

问题描述

我有一个 SQL 查询返回 1 行,有多个列标题:

I have a SQL query returning 1 row, with multiple column headers:

Col 1 | Col 2 | Col 3
val 1 | Val 2 | Val 3

有没有办法将此行转换为 2 列,即:

is there a way to convert this row to 2 columns, i.e. :

Col 1 | Val 1
Col 2 | Val 2
Col 3 | Val 3

这是在 SQLServer 2008 r2 上运行

this is running on SQLServer 2008 r2

添加一个更好的例子

   Product_Code | Product_Name | Customer_Name
   101          | yummy cake   | derps cake shop

来自一个简单的

select p.prod_code, p.prod_name, c.cust_name from product p 
inner join customer c on     p.id = c.id

输入查询.我想显示的是:

type query. What I want to display is:

   col heading 1| col heading 2
   product_code | 101
   Product_Name | yummy cake
   customer_name| derps cake shop

推荐答案

试试这个

CREATE TABLE #Table1
    ([Col 1] varchar(5), [Col 2] varchar(5), [Col 3] varchar(5))
;

INSERT INTO #Table1
    ([Col 1], [Col 2], [Col 3])
VALUES
    ('val 1', 'Val 2', 'Val 3')
;

SELECT Col,Val FROM
(
SELECT * FROM #Table1
) P
UNPIVOT
(
    val FOR Col IN ([Col 1], [Col 2], [Col 3])
) pvt

DROP TABLE #Table1

这篇关于sql将单行转换为键/值列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 13:16