删除语句的某些部分

时间:2013-02-24 10:01:47

标签: c# .net sql sql-server

我有一个生成许多SQL语句的应用程序,其选择字段都包含AS子句,如下所示:

SELECT TOP 200 [customer_name] AS [Customer Name], [customer_age] AS [Customer Age], AVG([customer_age]) AS 'Average Customer Age' FROM [tb_customers] GROUP BY [customer_age]

我的陈述将始终采用该格式。我的任务是解析它们,以便删除“TOP 200”,以及除聚合之外的所有AS子句。换句话说,我想解析语句,在这种情况下,它最终会像这样:

SELECT [customer_name], [customer_age], AVG([customer_age]) AS 'Average Customer Age' FROM [tb_customers] GROUP BY [customer_age]

我该怎么做呢?它是否可能,因为它似乎是一个非常复杂的解析任务,因为字段的数量永远不会是相同的。如果它有帮助,我有一个变量存储其中的字段数量(不包括聚合)。

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式,例如替换所有出现的

AS \[.*?\]

空文字

或所有出现的

AS \[.*?\],

用逗号“,”。

问号“?”这很重要,因为它关闭了贪婪的匹配。