通过字段中的非数值将t-sql结果拆分为数据表

时间:2017-06-15 16:18:37

标签: c# tsql

我编写了一个C#程序,将t-SQL记录输出到excel电子表格中的单独选项卡中,由记录所属的人分割。

我已经看到我可以在一个数据集中包含许多数据表,并将每个数据表转换为单独的选项卡(how to store multiple DataTables into single DataSet in c#?),所以现在我需要填充我的数据表。

我没有固定的人员列表,每次运行程序时都会有所不同,并且一个人可以分配任意数量的记录。

有没有办法使用SQL / C#来执行此操作,例如使用order或group by;或者我是否必须获取结果,选择人员列表,然后循环该特定人员的每个SQL查询并将其提供给新的数据表?

以为我会问,在我做了很长的路之前,是否有人知道很短路,因为这不是一件不寻常的事情。所以我怀疑必须有一个更简单的方法。

2 个答案:

答案 0 :(得分:1)

通常每个SELECT语句都会得到一个DataTable。

但是,您可以选择所有内容,然后使用LINQ对数据进行分组并填充DataTable。查看this是否有任何帮助。

答案 1 :(得分:0)

它取决于表结构,以及源和目标。

如果您有多个源表,可以将它们与UNION语句一起附加。这给出了所有表的不同值。您可以使用UNION ALL保留重复值。

SELECT customer_key, customer_name, customer_address

FROM table_1 customer_key = @Customer_key

UNION(或UNION ALL)

SELECT customer_key,customer_name,customer_address 来自table_2 WHERE Customer_key = @Customer_key

UNION等..