两表拼接

public DataTable UniteTwoDataTable(refDataTable dt1, refDataTable dt2, int colNum1, int colNum2)

{

DataTable dt = newDataTable();

if (dt1.Columns.Count < colNum1)

return dt;

if (dt2.Columns.Count < colNum2)

return dt;

//把keyName都加到ArrayList里

ArrayList rtn = newArrayList();

for (int i=0; i < dt1.Rows.Count; i++)

{

rtn.Add(dt1.Rows[i][colNum1].ToString());

}

for (int i = 0; i < dt2.Rows.Count; i++)

{

if (!rtn.Contains(dt2.Rows[i][colNum2].ToString()))

{

rtn.Add(dt2.Rows[i][colNum1].ToString());

}

}

rtn.Sort();

DataColumn dc;

DataRow dr;

//确定dt的栏位

dc = newDataColumn(dt1.Columns[colNum1].ColumnName.ToString(), typeof(string));

dt.Columns.Add(dc);

for (int j = 0; j < dt1.Columns.Count; j++)

{

if (j != colNum1)

{

dc = newDataColumn(dt1.Columns[j].ColumnName.ToString(), typeof(string));

dt.Columns.Add(dc);

}

}

for (int j = 0; j < dt2.Columns.Count; j++)

{

if (j != colNum2)

{

dc = newDataColumn(dt2.Columns[j].ColumnName.ToString(), typeof(string));

dt.Columns.Add(dc);

}

}

//给dt塞值

foreach (string keyName in rtn)

{

dr = dt.NewRow();

dr[0] = keyName;

int dtCount = 1;

for (int i = 0; i < dt1.Rows.Count; i++)

{

if (keyName.Contains(dt1.Rows[i][colNum1].ToString()))

{

for (int j = 0; j < dt1.Columns.Count; j++)

{

if (j != colNum1 )

{

if (dtCount < dt.Columns.Count)

{

dr[dtCount] = dt1.Rows[i][j].ToString();

}

dtCount++;

}

}

}

}

dtCount = dt1.Columns.Count;

for (int i = 0; i < dt2.Rows.Count; i++)

{

if (keyName.Contains(dt2.Rows[i][colNum2].ToString()))

{

for (int j = 0; j < dt2.Columns.Count; j++)

{

if (j != colNum2  )

{

if (dtCount < dt.Columns.Count)

{

dr[dtCount] = dt2.Rows[i][j].ToString();

}

dtCount++;

}

}

}

}

dt.Rows.Add(dr);

}

return dt;

}

时间: 2024-12-18 15:43:52

两表拼接的相关文章

两表拼接 pd.concat

a = pd.DataFrame([[1,2,3], [4,5,6], [7,8,9]],columns=['a','b','c']) b = pd.DataFrame([[11,23,45], [22,23,24], [31,32,33]],columns=['a','b','c']) pd.concat([a,b],axis=0,ignore_index=True) 原文地址:https://www.cnblogs.com/zhangzhixing/p/11671111.html

(转)MapReduce 中的两表 join 几种方案简介

1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的.而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的技巧. 本文首先介绍了Hadoop上通常的JOIN实现方法,然后给出了几种针对不同输入数据集的优化方法. 2. 常见的join方法介绍 假设要进行join的数据分别来自File1和File2. 2.1 reduce side join reduce side join是一种最简单的join方式,其主

一条SQL语句查询两表中两个字段

首先描述问题,student表中有字段startID,endID.garde表中的ID需要对应student表中的startID或者student表中的endID才能查出grade表中的name字段,这时候问题就来了,如果需要一条sql一句同时查出garde表中的两条数据怎么办?(两表的关联字段为 SID) sql="select b.name,c.name as name2 from student a,garde b,grade c where a.SID=b.SID and a.SID=c

not exists 查询两表不同的数据

select distinct B.F_StdNo,B.F_BeginTime,B.F_EndTime,B.F_CarNo,B.F_ProName,B.F_Gross,B.F_Tare,B.F_Net,B.F_UnitTo,B.F_opManTare,B.F_Memo,B.F_ScaleNameGross from {1} B where not exists (select * from {2} A where A.DH=B.F_StdNo) AND B.F_EndTime IS NOT NU

两表(多表)关联update的写法 .

原文:两表(多表)关联update的写法 . 关于两表关联的update,可以把SQL写成了在SQL Server下面的特有形式,但是这种语法在Oracle下面是行不通的 update customers a    set    city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)   where  exists (select 1                   from 

SQL两表关联查询&批量修改字段值

SQL关联查询&修改字段,正确范例如下: --批量修改报告单位名称&更新时间 --tt和tp两表关联查询,将符合条件的tt表中的principal字段更新到tp表的ruperson字段 merge into nhis34.t_publicplaces tp using standard.t_organization tt on (tt.orgcode = tp.r_orgcode and tp.create_time > '2015-05-07 00:00:00') when mat

两张表A和B,各有一个字段,更新时间A.MODIFIED_TM和B.MODIFIED_TM,A表为主表,更新时间不为空,但是B表更新时间可能为空,现在要取A、B两表时间最新的那个,B.MODIFIED

问题描述: 两张表A和B,各有一个字段,更新时间A.MODIFIED_TM和B.MODIFIED_TM,A表为主表,更新时间不为空,但是B表更新时间可能为空,现在要取A.B两表时间最新的那个,B.MODIFIED_TM若为空就取A.MODIFIED_TM,例如: 表A ID    MODIFIED_TM 1     2013/3/10 18:07:12 2     2013/4/10 18:07:12 3     2013/5/10 18:07:12 表B ID    MODIFIED_TM 1

MVC5+EF6简单实例---以原有SQLServer数据库两表联合查询为例

工具:VS.net2013.EF6.MVC5.SQLServer2008 参考出处: http://www.cnblogs.com/slark/p/mvc-5-get-started-create-project.html http://www.cnblogs.com/miro/p/4288184.html http://www.cnblogs.com/dotnetmvc/p/3732029.html 一.准备工作 在SqlServer上创建数据库:Element 模拟两个表并插入数据:SysU

Oracle两表关联(join)更新字段值一张表到另一张表

[采用视图更新的方式] 有需求A表,B表,需要将B表中的name字段更新到A表中的name,两表有id关联,代码如下: update  (select a.name aname, b.name bname from A a, B b where a.id = b.id) set aname = bname; --注:两表关联属性id必须为unique index或primary key