当前位置: 首页 > 面试题库 >

解析SQL查询并拉出列名和表名

马涵蓄
2023-03-14
问题内容

我有一个这样的查询脚本:

从dbo.View1中选择View1.OrderDate,View1.Email,SUM(View1.TotalPayments)WHERE(View1.OrderStatus
=’Completed’)GROUP BY View1.OrderDate,View1.Email
HAVING(SUM(View1.TotalPayments)> 75);

有什么方法可以从SQL查询中提取一些关键信息?例如表名和列名,我有两个问题:

  1. 我确实搜索了一些解析器,例如ANTLR,但找不到用于解释此解析器C#语言用法的文档。
  2. 有什么方法可以使用实体框架解析sql查询?我的查询是完全动态的,它们是在运行时创建的

问题答案:

我认为最好的答案是使用Irony解析器:http:
//irony.codeplex.com/

Hanselman与如何使用它来解析SQL有很好的链接:http
:
//www.hanselman.com/blog/TheWeeklySourceCode59AnOpenSourceTreasureIronyNETLanguageImplementationKit.aspx

我希望这会有所帮助,并祝您好运!



 类似资料:
  • 问题内容: 我正在寻找Java中的开源API来解析SQL / HQL查询,以便为我提供其中使用的列名和表名。我尝试使用JSQLParser,它为我提供了查询中使用的表名。但是我看不到支持获取查询中使用的列名的支持。还有其他API可以帮助我吗?我知道通用SQL解析器,但它似乎是付费的。 这是使用JSQLParser的代码片段,它为我提供了查询中的表名: 在此先感谢您的任何帮助。 问题答案: 使用JS

  • 问题内容: 我之所以来到这里,是因为我在Oracle数据库中没有足够的经验来解决这个问题。让我解释: 桌子 我有一个表,我们会打电话给 属性 ,包含3列: ID ,属性的ID, -edit:ENTITY_ID为好,它是指/编辑-实体 , TABLE_NAME ,包含表的名称,其中的存储该属性的值,以及 Column_name ,其中包含该表中存储该值的列的名称。 在 Table_name 列中引用

  • 问题内容: 我在Python列表中有一堆列名。现在,我需要将该列表用作语句中的列名称。我怎样才能做到这一点? 到目前为止,我有: 问题答案: 您无法传递要选择作为参数的列列表。它应该是您的SQL表达式的一部分,例如: 要注意的一件事是,SQL中参数值的占位符取决于数据库。如果不起作用,请尝试使用或。有关更多详细信息,请参见https://www.python.org/dev/peps/pep-02

  • 问题内容: 我已经在各种DBMS(Oracle,SQL Server,MySQL,Access等)上编写SQL已有多年了,而一直困扰着我的一件事是,表和子目录似乎缺乏命名约定。查询别名。 我一直都读过表别名是解决问题的方法,尽管我并不总是使用它们,但是当我这样做时,我总是会卡在要使用的名称之间。我已经从使用描述性名称变为单个字符,例如“ t”,“ s”或“ q”,然后再返回。以我刚刚编写的此MS

  • 问题内容: 我需要查询以在Bigquery中查找表(表元数据)的列名,例如SQL中的以下查询: 问题答案: 更新 :现在可以!请参阅下面的文档和答案。 回答,大约在2012年: 尽管这不是第一次请求,但当前无法通过查询检索表元数据(即列名和类型)。 您有理由将其作为查询吗?表格元数据可通过表格API获得。

  • 问题内容: 在两个具有相同列名的表上创建VIEW时,如何避免MySQL中的dup列名错误,如下所示 问题答案: 使用别名作为列名