#xquery #xquery-sql
#xquery #xquery-sql
Вопрос:
В следующем синтаксисе XQuery я добавил в последнюю таблицу ПЕРЕКРЕСТНОЕ ПРИМЕНЕНИЕ, и, похоже, оно отфильтровывает некоторые записи. Казалось бы, это так, потому что определенный узел является необязательным. Я думал, что мой код приведет к эквиваленту ВНЕШНЕГО соединения СЛЕВА, однако оно ведет себя как ВНУТРЕННЕЕ.
FROM
xxx_XML CROSS APPLY
XmlData.nodes('/reports/report/xxx-report') AS xxx(pref) CROSS APPLY
pref.nodes('summary') AS Summary(sref) CROSS APPLY
pref.nodes('data/proj-title/title-code') AS Title(tref)
Есть ли лучший способ справиться с этим?
Ответ №1:
Я думал, что мой код приведет к эквиваленту ВНЕШНЕГО соединения СЛЕВА, однако оно ведет себя как ВНУТРЕННЕЕ.
Если вы хотите, чтобы apply вел себя как внешнее соединение, вы могли бы использовать outer apply
.