首页 > 解决方案 > 对内存数据使用 SQL

问题描述

我有两个(或更多)数据集来自不同数据库和数据仓库的查询。现在我需要以可配置的方式合并这些数据集(例如 JOIN、UNION ALL、聚合函数等),最好用 SQL 语法描述。有没有一种对内存数据执行 SQL 的有效方法?我已经收集了以下方法,但似乎没有一个最适合我正在尝试做的事情:

  1. 定义一些可以解决问题并解析它的专有语言。这实际上是目前已有的解决方案,但是维护和扩展它是很多工作。
  2. 查找一些适用于 DataSet 或其他 C# 数据结构的 SQL 驱动程序。我找不到类似的东西。
  3. 使用例如 SQLite 将数据集写入表(内存中)并在它们上运行 SQL。不过,我必须将所有数据铲入表中,然后再返回,因此它可能不是最有效的解决方案。另外,我们通常使用 TSQL,所以 SQLite 会引入另一种 SQL 方言。
  4. 使用 SQL Server 将数据集写入临时表并在其上运行 SQL。更多的铲子,但这次跨越进程边界并使用已经存在的 SQL 方言。

谁能提供其他方法?或者可能是方法 2 的特定库?

标签: c#sqldataset

解决方案


推荐阅读