对数据表或实体列表的 SQL 查询

Posted

技术标签:

【中文标题】对数据表或实体列表的 SQL 查询【英文标题】:SQL Query on a Datatable or List of entity 【发布时间】:2021-02-19 18:12:43 【问题描述】:

我有一个在运行时使用 Excel 工作表中的值生成的 DataTable。

我的问题:有没有一种方法可以对数据表中的数据运行 SQL 查询,以便它可以返回数据?

var dt = datatable.select("select col1,col2 from dt");

我会将括号中的查询作为参数。

【问题讨论】:

dotnetperls.com/datatable-select forums.asp.net/t/… c-sharpcorner.com/UploadFile/0f68f2/… 感谢您的回复,但使用此我无法通过直接 sql 命令查询数据表。我正在寻找将 sql 命令发送到 select like 扩展方法 【参考方案1】:

没有一种方法可以完全满足您的需求。您可以像这样使用DataTable Select 方法:

DataRow[] rows = dt.Select();

foreach (DataRow dr in rows)

    Console.WriteLine(dr["col1"]);
    Console.WriteLine(dr["col2"]);

参考:DataTable.Select Method

【讨论】:

谢谢米奇小麦。看起来没有直接将 sql 命令传递给 Select 方法的方法。【参考方案2】:

也许您可以将其用作 CTE?

With YOUR_CTE AS (
    SELECT COL1, COL2, FROM TABLE
)
SELECT * FROM ANOTHER_TABLE
WHERE WHATEVER = (SELECT COL1 FROM YOUR_CTE)

【讨论】:

可能你没有理解我的问题。阅读 excel 表后,我已经有一个数据表对象。现在我想从纯 sql 命令中查询它,就像我们在 python 中使用数据框有这个功能一样,您可以将纯 sql 命令发送到数据框

以上是关于对数据表或实体列表的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

表中的存储过程列表

Spring Data JPA:查询如何返回非实体对象或对象列表?

如何在没有实体的学说查询中合并连接表

我可以在不创建实体类的情况下对大型 sql 使用休眠命名查询吗?

sql查询语句大全

SQL 多级查询(级数不定)