Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 将列值转换为行值_Sql_Sql Server_Database_Pivot - Fatal编程技术网

Sql 将列值转换为行值

Sql 将列值转换为行值,sql,sql-server,database,pivot,Sql,Sql Server,Database,Pivot,在SQL Server中,我尝试将表1转换为表2。通过阅读堆栈溢出的其他答案,我可以做一些排序的行数。但问题是,我需要在转换后进行一些内部连接,因为下面的脚本使用max aggregate函数,它会强制其他表中的其他字段也具有某种聚合函数。所以我想知道是否有其他方法来解决这个问题?或者,当do与另一个表连接时,是否有方法处理此聚合函数 select max(case when key = 'ab' then Value end) as ab, max(case when key

在SQL Server中,我尝试将表1转换为表2。通过阅读堆栈溢出的其他答案,我可以做一些排序的行数。但问题是,我需要在转换后进行一些内部连接,因为下面的脚本使用max aggregate函数,它会强制其他表中的其他字段也具有某种聚合函数。所以我想知道是否有其他方法来解决这个问题?或者,当do与另一个表连接时,是否有方法处理此聚合函数

select max(case when key = 'ab' then Value end) as ab, 
       max(case when key = 'cd' then Value end) as cd
from (select t.*, 
             row_number() over (partition by key order by Value) as seq
      from table t
     ) t
group by seq;
表1

表2


您可以尝试使用下面的脚本-

SELECT id,
MAX(CASE WHEN name = 'car1' THEN name END) car1,
MAX(CASE WHEN name = 'car2' THEN name END) car2, 
MAX(CASE WHEN name = 'car3' THEN name END) car3 
FROM your_table
GROUP BY id

您可以选择PIVOT功能

;以src为例 挑选* 从…起 价值观 1、“汽车1”、“日产”, 1、“汽车2”、“奥迪”, 1、“汽车3”、“丰田” 作为t id、名称、值 挑选* 来自src 支点 [Car1]、[Car2]、[Car3]中名称的最大值 作为pvt
提供你的另一张表格的一些样本数据,以及你想要的结果。当有人回答你的问题时,你是否熟悉预期的礼仪?我注意到你没有接受任何问题的答案。我建议你先阅读,然后对你现有的问题给出一些答案和投票。

+----+--------+------+--------+
| id |  Car1  | Car2 |  Car3  |
+----+--------+------+--------+
|  1 | nissan | audi | toyota |
+----+--------+------+--------+