Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SQL将前1行结果转换为列_Sql Server 2008 - Fatal编程技术网

Sql server 2008 SQL将前1行结果转换为列

Sql server 2008 SQL将前1行结果转换为列,sql-server-2008,Sql Server 2008,我的表有10列,我的查询总是只给我一条记录。 现在我想把这条记录转换成键值对 例如:从dbo.表中选择* 输出: 预期输出如下 name value ============== col1 val1 col2 val2 col3 val3 col4 val4 col5 val5 请建议如何做到这一点 非常感谢假设您的列a)固定,b)类型相同,您可以使用来实现此转换: select name, value from MyTable unpivot

我的表有10列,我的查询总是只给我一条记录。 现在我想把这条记录转换成键值对

例如:从dbo.表中选择* 输出:

预期输出如下

name    value  
==============
col1     val1
col2     val2
col3     val3
col4     val4
col5     val5
请建议如何做到这一点


非常感谢

假设您的列a)固定,b)类型相同,您可以使用来实现此转换:

select name, value
from MyTable
unpivot
(
  name
  for Value in ([Col1], [Col2], [Col3], [Col4], [Col5])
) x;

select name, value
from MyTable
unpivot
(
  name
  for Value in ([Col1], [Col2], [Col3], [Col4], [Col5])
) x;