У меня есть такой запрос:
SELECT Name,
REPLACE(RTRIM((
SELECT CAST(Score AS VARCHAR(MAX)) + ' '
FROM
(SELECT Name, Score
FROM table
WHERE
---CONDITIONS---
) AS InnerTable
WHERE (InnerTable.Name = OuterTable.Name) FOR XML PATH (''))),' ',', ') AS Scores
FROM table AS OuterTable
WHERE
---CONDITIONS---
GROUP BY Name;
Как видно, я использую тот же набор условий для получения InnerTable
и OuterTable
.Есть ли способ сократить этот запрос?Я спрашиваю об этом, потому что некоторое время назад я увидел ключевое слово USING
в MySQL, которое упростило мою жизнь, используя который вы можете указать запрос один раз, а затем использовать его псевдоним для остальной части запроса.