Sql 如何将多个Datatable(DataColumn)连接到一个单独的列中?
我有以下3个查询语句:Sql 如何将多个Datatable(DataColumn)连接到一个单独的列中?,sql,sql-server,Sql,Sql Server,我有以下3个查询语句: sSQLSting1 = "SELECT * From Column1" sSQLSting2 = "SELECT * From Column2" sSQLSting3 = "SELECT * From Column3" Edit:Column1是表1的名称,但它只是一列 我想将它们全部连接到新Datatable的不同列中,但尝试使用时: sSQLSting1&“Union”&sSQLSting2&“Union”&sSQLSting3,但列表仅返回一列 我希望的结果是
sSQLSting1 = "SELECT * From Column1"
sSQLSting2 = "SELECT * From Column2"
sSQLSting3 = "SELECT * From Column3"
Edit:Column1是表1的名称,但它只是一列
我想将它们全部连接到新Datatable的不同列中,但尝试使用时:
sSQLSting1&“Union”&sSQLSting2&“Union”&sSQLSting3
,但列表仅返回一列
我希望的结果是创建一个包含上述所有列的表,因此我的问题是:
我可以只使用一条查询语句来实现这一点,还是必须迭代并为每个列添加数据?(我用的是c#)
非常感谢 也许这会有所帮助 同样,没有正确顺序的GTD。此外,假设每个表中的行数相同 示例
Select Col1 = A.SomeColumn
,Col2 = B.SomeColumn
,Col3 = C.SomeColumn
From ( Select SomeColumn,RN=row_number() over (order by SomeColumn ) from Column1 ) A
Join ( Select SomeColumn,RN=row_number() over (order by SomeColumn ) from Column2 ) B on A.RN=B.RN
Join ( Select SomeColumn,RN=row_number() over (order by SomeColumn ) from Column3 ) C on A.RN=C.RN
编辑另一个选项是轴
Select *
From (
Select Value=SomeColumn,Col=1,RN=row_number() over (order by SomeColumn ) from Column1
Union All
Select Value=SomeColumn,Col=2,RN=row_number() over (order by SomeColumn ) from Column2
Union All
Select Value=SomeColumn,Col=3,RN=row_number() over (order by SomeColumn ) from Column3
) src
Pivot (max(value) for Col in ([1],[2],[3]) ) pvt
这可能是客户端最简单的操作:
for(int x = 1; x < dts.Length; x++){
dts[0].Columns.Add(dts[x].Columns[0].ColumnName);
for(int y = 0; y < dts[x].Rows.Count; y++)
dts[0].Rows[y][x] = dts[x].Rows[y][0];
}
for(int x=1;x
它将处理数组中任意数量的数据表(称为dts)——如果是列表,则将长度更改为Coubt等
所有列名称都必须是唯一的(您的列名称是唯一的)-可以添加逻辑以将某些内容附加到名称以使其唯一
所有数据都复制到数组中的第一个表中
如果列不是字符串,则可以通过采用dts[x]的类型来添加添加到dts[0]的新列的类型。列[0]给出了示例数据和所需结果。这是完全不清楚的。你有一张叫Column1的桌子吗?它包含哪些列?有一个名为Column1的表吗?您的命名约定有点混乱。也许一个小的数据样本和期望的结果将是一个更好的可视化HI,感谢评论,我已经更新了帖子!好的,您已经给出了示例结果,但没有给出附带的源数据。具体来说,表中的行是如何相互映射的?这是一个连接而不是联合,但您需要一些东西来连接onHi,我想根据行位置、列1中的行1和列2中的行1分别添加它们。。。新表中的同一行。(他们之间没有亲戚关系)非常感谢,我会尝试你的查询,这让我很困惑。@TheGridLock试一试。第一种方法是使用一个row_number()生成一个公共键来连接。第二种方法是使用row_number()作为分组依据。@TheGridLock这里真正的问题是您的设计。您有3个表,每个表有一列。没有真正的方法将单元格值与下一个单元格值关联起来。非常感谢您对我的澄清!“我理解这个问题。”僵局总是乐于助人