0
У меня есть функция, которая имеет два выхода ...функция Таблицы для каждой записи в запросе
dbo.func1(@code) -> Table(out1, out2)
Эта функция является слишком дорогостоящей и занимает много времени, чтобы вычислить эти два выхода. и у меня есть запрос, как это:
SELECT code, name,
(SELECT out1 dbo.func1(code)), (SELECT out2 dbo.func1(code))
FROM MyInnerJoinedTablesResult
Но моя дорого функция вызова на два с половиной раза, но я хочу, чтобы назвать это один раз для каждой выбранной записи в моей таблице ... и результат в два столбца в любой ряд (не двойные строки)
SELECT code, name,
(out1 in func1), (out2 in func2)
FROM MyInnerJoinedTablesResult
'ВЫБОР t.code, f.out1, f.out2 ИЗ dbo.table КАК т CROSS APPLY dbo.func1 (т .code) AS f' –
Извините, я не могу понять, что вы пытаетесь выполнить. Возможно, какой-то образец поможет. – ericpap
И убедитесь, что ваша функция, ориентированная на таблицу, является встроенной функцией, связанной с таблицей. Это означает, что в функции есть 1 и ТОЛЬКО 1 оператор. Если у вас есть переменные и всякая обработка, ваша производительность не будет лучше. –