Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Маппинг полей из двух похожих SQL запросов.

$
0
0
Задача.
Есть два SQL запроса, возвращающих сходный по своему физическому смыслу датасет, с большим количеством полей.
Задача: сравнить эти запросы и синхронизировать output интерфейс, то есть добавить недостающие поля из другого запроса.
В моем представлении для этого нужно иметь табличную функцию, которая распарсит строку sql query, и вернет для каждого возвращаемого из запроса поля его алиас в resultset, и и информацию о его источнике.
Например, для запроса
@SQL=’ SELECT  p.[BusinessEntityID] ID,    p.MiddleName [MN]      FROM [AdventureWorks2014].[Person].Person p’;

Функция вернет результат, аналогичный такому запросу:
SELECT *  FROM (VALUES ('p', '[AdventureWorks2014].[Person].[Person]','[BusinessEntityID]'), ('mn', '[AdventureWorks2014].[Person].[Person]','[MiddleName]') ) AS ParsingFunction(OutputAlias, SourseTable, SourseField);


Имея такую функцию, мы можем замаппить два списка полей из ResultSet-а запросов.
Вопрос: что-нибудь готовое на эту тему есть?
Пока не рассматриваем сложные случаи, с поздапросами и common table expressions.
Спасибо

Viewing all articles
Browse latest Browse all 7251

Trending Articles