你可能没明白我的意思。select id,r.m_id,start_time,end_time,NAME,--r,m.B as ctr from ( select m_id, pub_paid,c from A--(原来在ORACLE里现在要换成sqlserver2008) where mid in (1000,1001,1002) and rownum<=10 and flag=1 group by m_id ) r left join m on r.m_id=m.id and m.status>0 order by m_id; SQL大概是这样的,A表现在要用sql中的A表来取数据。
}).ToList().ForEach(element => dt2.Rows.Add(element));//合并 var res = (from e1 in dt1.Select() select e1.Field<string>("ID")).Union
(from e2 in dt2.Select() select e2.Field<string>("ID")); //显示出数据 在VS中使用foreach显示res.Dump("Show Data");string.Join("",res).Dump("Cols -> Row");string.Join(",",res).Dump("Cols -> Row");结果如下: 这是我们公司用的LINKSERVER链接Oracle和MSSQL的表关联的SQL SELECT * FROM OPENQUERY(jde,'SELECT * FROM proddta.F4311 WHERE PDDOCO = 13000001') F4311LEFT JOIN dbo.JDEConfirmTable ON PDDOCO = OrderNo AND PDDCTO = PURStyle AND PDMCU = Company
自己在Plsql里面试一试吧。
再加一个查询sqlserver数据库数据的方法不就可以了,又不影响查询oracle,随便你自己怎么处理。
from
(
select m_id, pub_paid,c
from A--(原来在ORACLE里现在要换成sqlserver2008)
where mid in (1000,1001,1002)
and rownum<=10 and flag=1
group by m_id
) r
left join m on r.m_id=m.id
and m.status>0
order by m_id;
SQL大概是这样的,A表现在要用sql中的A表来取数据。
完全可以,就用datatable吧,里面left join,筛选什么的都有。
完全可以,就用datatable吧,里面left join,筛选什么的都有。嗯,像上面的sql用datatable怎么处理呀?
http://blog.csdn.net/ericyeung/article/details/2659633
left join M--Oracle中的
on A.ID=M.id应该怎么分成两个datatable来处理?
left join M--Oracle中的
on A.ID=M.id应该怎么分成两个datatable来处理?
123
1234
12345
1234567转换成'123','1234','12345','1234567'的一个string。
不知道你是不是要这个结果?还是把int转成string?
string res = string.Join("",new System.Data.DataTable().Select().Select(r => r.Field<string>("列名")).ToArray())
在C#使用DataSet操作两个数据源的表数据 再使用LINQ来操作DataSet,这样也是行的通的。但是同样的功能LINKSERVER也可以实现,SQL实现更方便。只要建立了oledb,OPENDATASOURCE,OPENROWSET什么的都比C#实现起来方便和高效吧。
下午没事做。。//建立DataTable 1(模拟从SQLServer取出的数据)
DataTable dt1 = new DataTable();dt1.Columns.Add(new System.Data.DataColumn("ID",typeof(string)));//建立DataTable 2(模拟从Oracle取出的数据)
DataTable dt2 = new DataTable();dt2.Columns.Add(new System.Data.DataColumn("ID",typeof(string)));//给Table1加入初始数据(0 - 4)
Enumerable.Range(0,5).Select(num => { var row = dt1.NewRow();
row[0] = num.ToString(); return row;
}).ToList().ForEach(element => dt1.Rows.Add(element));//给Table2加入初始数据(1000 - 1004)
Enumerable.Range(1000,5).Select(num => { var row = dt2.NewRow();
row[0] = num.ToString(); return row;
}).ToList().ForEach(element => dt2.Rows.Add(element));//合并
var res = (from e1 in dt1.Select() select e1.Field<string>("ID")).Union
(from e2 in dt2.Select() select e2.Field<string>("ID"));
//显示出数据 在VS中使用foreach显示res.Dump("Show Data");string.Join("",res).Dump("Cols -> Row");string.Join(",",res).Dump("Cols -> Row");结果如下:
这是我们公司用的LINKSERVER链接Oracle和MSSQL的表关联的SQL
SELECT * FROM OPENQUERY(jde,'SELECT * FROM proddta.F4311 WHERE PDDOCO = 13000001') F4311LEFT JOIN dbo.JDEConfirmTable ON PDDOCO = OrderNo AND PDDCTO = PURStyle AND PDMCU = Company