Сразу хочу извиниться перед коллегами, за быть может не очень корректный заголовок.
Итак к делу:
Коллеги, нужно автоматизировать SQL запрсы следующим образом:
Прикладной программист пишет:
-- запрос А
Select Orders.Customers.Address,
Orders.Customers.City,
Orders.Customers.CompanyName,
Orders.OrderDate, Orders.RequiredDate
from Orders
а парсер должен привести все это к виду:
-- запрос Б
select Customers.Address,
Customers.City,
Customers.CompanyName,
Orders.OrderDate,
Orders.RequiredDate
from Orders
left join Customers on Customers.ID = Orders.CustomerID
это самый простой вариант запроса, он может быть намного сложнее, т.е со многими вложенными таблицами и пр.
Парсер на C#.
Теперь попробую коротко описать логику работы парсера:
берем первый трэк запроса А:
Orders.Customers.Address,
разбираем его, получаем, что первый элемент трэка, это "Orders" — это FromTable, второй элемент трэка "Customers" — это приджойненная таблица и т.д. по всем трэкам.
Так вот меня интересует не готовое решение, а именно есть ди в C# классы (типа может быть Regex), которые помогут мне решить эту задачу грамотно и не дадут изобретать велосипед.
Всем спасибо.