Описание тега cross-apply

Оператор T-SQL APPLY позволяет вызывать возвращающую табличное значение функцию для каждой строки, возвращаемой внешним табличным выражением запроса. CROSS APPLY действует как замена INNER JOIN и возвращает строки только в том случае, если есть совпадение по условию соединения. Использование CROSS APPLY в некоторых случаях будет работать лучше, чем эквивалентный оператор JOIN. Он похож на CROSS JOIN LATERAL в стандарте SQL.
1 ответ

Эквивалент перекрестного применения и выбора вершины

У меня есть таблица (скрипт ниже): use master go -- -- if db_id ( 'CrossApplyDemo' ) is not null drop database CrossApplyDemo go create database CrossApplyDemo go use CrossApplyDemo go -- if object_id ( 'dbo.Countries', 'U' ) is not null drop table …
23 авг '12 в 09:30
1 ответ

Как объединить несколько записей в одну, используя номер строки?

Как я могу получить несколько записей предупреждений (до 10 на одного учащегося), которые будут отображаться в одной записи на каждого учащегося? Я пытаюсь использовать номер строки для нумерации записей, а затем помещать их в выходные данные, но на…
19 сен '17 в 17:22
1 ответ

Лучший способ объединить две таблицы * включая * дубликаты из одной таблицы

Счета (таблица) +----+----------+----------+-------+ | id | account# | supplier | RepID | +----+----------+----------+-------+ | 1 | 123xyz | Boston | 2 | | 2 | 245xyz | Chicago | 2 | | 3 | 425xyz | Chicago | 3 | +----+----------+----------+-------+…
15 ноя '11 в 20:57
1 ответ

TSQL Cross Apply не работает должным образом

Есть 3 таблицы: пользователей Depts (хотя, кажется, не обязательно для запроса, но...) Сообщения Пользователи: UID, DeptID, Name, Surname, Admin U1 DeptA John Doe 0 U2 DeptB Jack Fisher 0 U3 DeptA Jill Smith 0 U4 DeptA Joan Green 1 U5 DeptC Jeff Jon…
23 окт '15 в 12:50
0 ответов

Применить оператор в SQL и средство просмотра отчетов

У меня есть хранимая процедура, которую я пытаюсь вызвать из средства просмотра отчетов, и я получаю сообщение об ошибке ниже Exception has been thrown by the target of an invocation. Failed to enable constraints. One or more rows contain values vio…
1 ответ

CROSS APPLY Стиль против производительности

Должен ли я использовать отдельный CROSS APPLY для каждого псевдонима или определить несколько выражений в одном CROSS APPLY, где это возможно? Я рефакторинг многих очень сложных запросов SQL (часто четыре или пять страниц с дюжиной JOIN), которые г…
10 июл '12 в 18:14
2 ответа

Entity Framework отображает многоуровневые свойства

Я пытаюсь реализовать иерархическую структуру наследования в Entity Framework, специально для настроек. Например, допустим, у нас есть пользовательские настройки: public class StorePreference: Preference { } public class UserPreference : Preference …
17 апр '17 в 20:17
1 ответ

Как запросить все дочерние узлы от родительского?

DECLARE @xml AS XML SET @xml = CAST('<codes><pcc>DFC</pcc><pcc>MAI</pcc><pcc>PFS</pcc></codes>' AS XML) SELECT pcc.value('pcc[1]', 'varchar(max)') AS [ColumnTest] FROM @xml.nodes('/codes') results ( pc…
12 мар '13 в 22:18
0 ответов

Включение фактического плана запроса взрывает время выполнения

Я использую SQL Server 2005, и у меня есть довольно сложный запрос, который занимает секунду или две для выполнения. Я хотел отладить производительность, используя план запроса, но когда я включаю фактический план выполнения в вывод, запрос идет от …
1 ответ

Используйте функцию перекрестного применения

У меня есть этот перекрестный запрос и я хочу суммировать его результат CROSS APPLY (SELECT SUM(CASE WHEN [day] BETWEEN @FirstDay AND @LastDay THEN 1 ELSE 0 END) AS UsedDays FROM Calendar c WHERE ([day] >= r.[DateFrom] AND [day] <= r.[DateTo] …
12 окт '18 в 07:04
2 ответа

CROSS APPLY Создание дополнительных записей

Я пытаюсь создать отчет, который отображает потенциальные дубликаты записей на основе трех критериев: последние 4 из SSN, фамилия и DOB. Я разместил здесь вопрос по этой проблеме и получил ответ, что я должен использовать Cross Apply для отмены данн…
1 ответ

Получить разделенные запятыми значения из XML в SQL

Я вызываю Scalar UDF из хранимой процедуры, чтобы получить значение столбца. Внутри скалярного UDF у меня есть xml, и я должен получить значения через запятую определенного узла. Я использовал Cross apply, но это вызвало огромные проблемы с производ…
14 мар '17 в 03:05
2 ответа

Как обрабатывать пустые строки в CROSS APPLY [SQL Server]

Я ниже Stored Procedure- ALTER PROCEDURE [dbo].[Optimized_GetArticlePostAMP] ( @PostID int ) AS BEGIN SET NOCOUNT ON; SET STATISTICS TIME ON DECLARE @SectionId int ,@datediff int DECLARE @postdate datetime SELECT P.PostId, P.SectionID, P.PostName,MP…
23 июн '16 в 09:53
1 ответ

sp_executesql против пользовательской скалярной функции

В таблице ниже я храню некоторые условия, подобные этим: Затем, как правило, во второй таблице у меня есть следующие записи: и мне нужно сравнить эти значения, используя правильное условие, и сохранить результат (скажем, "0" для "ложь" и "1" для "ис…
1 ответ

Использование запроса выбора в качестве параметра в табличной функции

У меня есть функция, которая принимает целочисленный ввод и возвращает таблицу с соответствующими идентификаторами из таблицы ниже. ID NAME RELATED_ID 1 a null 2 b null 3 c 1 4 d 1 Итак, выберите * из fn_getrelatedids(1) возвращает ID 1 3 4 Я хочу и…
1 ответ

SQL Server: выберите счетчик одного столбца, одновременно проверяя различное значение в другом

Я пытаюсь получить счетчик определенного столбца (sch1.[Key]), а также проверяю, чтобы другой столбец имел разные значения (p.[Ref]). Есть ли простой способ сделать это с помощью SQL Server? Я думаю, что ответ лежит где-то в соединении таблиц [test]…
29 май '17 в 17:55
3 ответа

SQL Server: запуск отдельной CTE для каждой записи без курсора или функции

Приведенная таблица А с колонкой LocationID и много записей, Можно ли полностью запустить CTE для каждой записи без использования курсора (во время цикла выборки) или функции (через перекрестное применение)? Я не могу запустить CTE из таблицы A, пот…
0 ответов

SQL Server CROSS APPLY никогда не заканчивается ссылкой на другую таблицу

Я пытаюсь использовать эту функцию ExplodeDate. Но я не могу запустить его одним простым запросом. Я могу воспроизвести это с пустой базой данных на SQL Server 2016 локально и в базе данных Azure. Пожалуйста, используйте следующий код, чтобы воспрои…
2 ответа

Оптимизировать запрос с несколькими OUTER APPLY

У меня запрос с несколькими OUTER APPLY но у всех таблиц есть первичные ключи в соединенных столбцах (поэтому здесь используются кластерные индексы), поэтому я не знаю, как оптимизировать этот запрос в дальнейшем. Также здесь невозможно использовать…
1 ответ

Процедура SQL Server завершается преждевременно после преобразования строк с разделителями-запятыми в XML

У меня есть процедура, которая прекрасно выполняется в среде SSMS, но когда я подключаю ее к веб-странице, вместо того, чтобы увидеть возвращенный список packageID, возвращаемое значение равно нулю. Я проверил разрешения, но это не проблема. Затем я…
17 ноя '15 в 12:14