sql-server #for-xml
#sql-сервер #для-xml
Вопрос:
У меня есть большой запрос, и в нем есть подзапрос, в котором я пытаюсь получить все отдельные строки из столбца временной таблицы
(SELECT
STUFF((
SELECT DISTINCT #SomeTemporaryTable.CountryName
FROM #SomeTemporaryTable
WHERE (#SomeTemporaryTable.SomeId = 1
AND #SomeTemporaryTable.AnotherId = 2)
FOR XML PATH(''''),TYPE).value(''(./text())[1]'',''VARCHAR(MAX)'')
,1,2,'''') AS BreakDownLocationCountry,
Проблема в том, что я получаю следующую ошибку:
Предложение ORDER BY недопустимо в представлениях, встроенных функциях, производных таблицах, подзапросах и общих табличных выражениях, если также не указано значение TOP или FOR XML.
Может кто-нибудь, пожалуйста, помогите мне?
P.S: Microsft SQL 2008
Комментарии:
1.
Microsft SQL 2008
— это заставляет меня плакать, почему вы наказываете себя, используя устаревшую и полностью неподдерживаемую платформу? Также я не думаю, что вы включили достаточно своего запроса, чтобы помочь решить сообщение об ошибке (я нигде не вижуORDER BY
). Не могли бы вы, пожалуйста, создать минимальную демонстрацию проблемы в db<>fiddle ? например, СОЗДАТЬ ТАБЛИЦУ, ВСТАВИТЬ и минимальный запрос, который генерирует ошибку (нам, конечно, не нужен весь ваш запрос).2. Я не наказываю себя. Мой босс наказывает меня :))
3.
ORDER BY
продолжается в строке вышеFOR XML
4. Почему вы «удвоили» свои одинарные кавычки? Это недопустимый синтаксис (если только это не часть какого-то более крупного динамического оператора, который вы нам не показываете, но тогда вы должны сделать приведенное выше представление о том, чего вы на самом деле пытаетесь достичь). Кроме того, ошибка, которую вы получаете, не связана с вышеизложенным;
ORDER BY
предложения нет.