Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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_Join - Fatal编程技术网

Sql 将多行合并到一列中

Sql 将多行合并到一列中,sql,join,Sql,Join,我必须创建一个基于2个文件的报告,表1是主文件,表2是属性文件。可以连接这两个文件并创建下面的结果表 表1: 身份证件 全国矿工联盟 A. 1. B 1. B 2. 您需要一个聚合。你可以做: select a.id, max(a.num) as num, max(case when b.attr = 'ATR1' then b.val end) as attr1, max(case when b.attr = 'ATR2' then b.val end) as attr2,

我必须创建一个基于2个文件的报告,表1是主文件,表2是属性文件。可以连接这两个文件并创建下面的结果表

表1:

身份证件 全国矿工联盟 A. 1. B 1. B 2.
您需要一个聚合。你可以做:

select
  a.id,
  max(a.num) as num,
  max(case when b.attr = 'ATR1' then b.val end) as attr1,
  max(case when b.attr = 'ATR2' then b.val end) as attr2,
  max(case when b.attr = 'ATR3' then b.val end) as attr3
from table1 a
join table2 b on a.id = b.id
group by a.id

你正在寻找一个支点。它有多复杂取决于您的RDBMS。根据您生成报告的情况,您可能只希望在工具中处理此问题。