删除语句的某些部分

本文关键字:些部 语句 删除 | 更新日期: 2023-09-27 18:00:42

我有一个应用程序,它生成了许多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]

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

删除语句的某些部分

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

AS '[.*?']

带有空文本

或的所有出现

AS '[.*?'],

带有逗号","。

问号"?"在这里很重要,因为它可以关闭贪婪的匹配。