我有一个生成许多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]
我该怎么做呢?它是否可能,因为它似乎是一个非常复杂的解析任务,因为字段的数量永远不会是相同的。如果它有帮助,我有一个变量存储其中的字段数量(不包括聚合)。
答案 0 :(得分:1)
您可以使用正则表达式,例如替换所有出现的
AS \[.*?\]
空文字
或所有出现的
AS \[.*?\],
用逗号“,”。
问号“?”这很重要,因为它关闭了贪婪的匹配。