Включите столбцы из функции с табличным значением в результаты запроса T-SQL

#sql-server-2012

Вопрос:

Допустим, у меня есть таблица с кучей адресов:

Адрес
ул. Смита, 10
20 Джонс-стрит

У меня есть функция, которая примет указанный строковый адрес и вернет таблицу с отдельными столбцами для каждого компонента адреса, например:

Номер Улица
10 Смит-Стрит

и я хочу затем запустить функцию по всем адресам и вернуть одну таблицу с включенными проанализированными столбцами:

Адрес Номер Улица
ул. Смита, 10 10 Смит-Стрит
20 Джонс-стрит 20 Джонс-Стрит

Это упрощенный пример, потому что функция синтаксического анализа может выполнять некоторые более сложные задачи, поэтому это должна быть функция.

Есть какие-нибудь идеи??

Комментарии:

1. В чем, собственно, вопрос ? Вы упомянули, что у вас уже есть функция, которая анализирует Address в Number и Street . Есть проблемы с использованием этого, чтобы получить то, что вы хотите ?

Ответ №1:

Вздох, надо было присмотреться повнимательнее, мне нужно было ПЕРЕКРЕСТНО ПОДАТЬ ЗАЯВКУ:

https://www.red-gate.com/simple-talk/sql/learn-sql-server/tsql-user-defined-functions-ten-questions-you-were-too-shy-to-ask/#second

Так что в моем примере это было бы:

выберите s.Адрес, стр.* из источника s перекрестное применение [dbo].разбор_адрес p

Комментарии:

1. Это не сработает, если ваша функция не является функцией с табличным значением, и вы не передадите параметры