【问题标题】:C# - SQL WITH clauseC# - SQL WITH 子句
【发布时间】:2011-09-06 22:13:43
【问题描述】:

只是在寻找想法-

我有一个需要在 C# 中解析的 SQL 语句。它的格式基本如下-

    WITH TableX as (

    -- something else could be here..
    select field1, field2, .. fieldX
    from mytable
    -- something else could be here..

    )

    -- something else could be here..
    select /*THESE FIELDS ARE BEING REPLACED*/ TableX.field1, TableX.field2, .. TableX.fieldX
    from TableX
    -- something else could be here.. ie, more joins, selecting from subqueries. Basically another select could exist here.

关于如何用另一组保证在结果集中的字段替换“TableX.field1, TableX.field2, .. TableX.fieldX”有什么想法吗?

【问题讨论】:

  • 我认为你的例子还不是很清楚。 “其他东西”真的可以是任何东西(例如完整的查询,然后是另一个WITH)吗?我们/您是否必须从多个 CTE 中专门挑选出 TableX 定义,如果是,是什么功能挑选出来的。退后一步,尝试在不了解具体问题的情况下阅读您的问题。哪些事实不存在,或者让您不得不猜测?
  • 这是关于字符串替换,还是关于 CTE 的工作原理?
  • 这是关于字符串替换的。而“--这里可能还有其他东西”应该很明显。
  • 使用 SQL 中的“WITH”语句,WITH 定义了一个可以从中选择的临时结果集。我正在寻找的是从该结果集中选择并替换它们的那些字段。
  • 搜索包含 '/*THESE FIELDS ARE BEING REPLACED*/' 的行,然后执行替换。 ;)

标签: c# sql common-table-expression


【解决方案1】:

您可以使用完整的 sql 解析器来构建解析树,然后从那里有选择地替换项目。

不平凡的任务。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-08-18
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多