在SQL查询中为每个表添加别名(以编程方式)

时间:2017-10-31 14:12:15

标签: sql .net sql-server

我需要以编程方式编辑SQL命令,使SQL命令中的每个表都有别名。输入是数据库的模式和SQL命令。输出应该是一个SQL查询,其中每个表都有一个别名,并且在我们引用该表的属性时总是使用它。

例如,让我们拥有一个数据库person(id, name, salary, did)department(did, name)以及以下SQL命令:

select id, t.did, maxs
from person
join (
  select did, max(salary) maxs
  from person
  group by did
) t on t.maxs = salary and person.did = t.did

此类输入的预期结果为

select p1.id, t.did, t.maxs
from person p1
join (
  select p2.did, max(p2.salary) maxs
  from person p2
  group by p2.did
) t on t.maxs = p1.salary and p1.did = t.did

我正在考虑使用ANTLR4,但是,我很好奇是否有更简单的解决方案。我最近遇到TSqlParser,是否可以使用这个类以一种简单的方式实现这样的重写?

0 个答案:

没有答案