Я знаходжу спосіб об’єднати рядки з різних рядків в один ряд. Я хочу зробити це в багатьох місцях, тому добре функціонувати для полегшення цього. Я спробував з допомогою рішення COALESCE
і FOR XML
, але вони просто не нарізати його для мене.
Об'єднання рядків може зробити щось подібне:
id | Name Result: id | Names
-- - ---- -- - -----
1 | Matt 1 | Matt, Rocks
1 | Rocks 2 | Stylus
2 | Stylus
Я прийняв поглянути на CLR певних агрегатних функцій в якості заміни COALESCE
і FOR XML
, але , мабуть , SQL Azure НЕ підтримує CLR певного матеріалу, який є головним болем для мене , тому що я знаю , що бути в змозі використати це дозволить вирішити цілі багато проблеми для мене.
Чи є можна обійти, або так само оптимальний метод (який не може бути оптимальним , так як CLR, але агов , я візьму те , що я можу отримати) , що я можу використовувати , щоб об'єднати свої речі?
for xml
показує 25% використання в плані виконання запиту (основна частина запиту!)
for xml path
запиту. Деякі швидше за інших. Це може залежати від ваших даних, але ті, які використовуються distinct
, на мій досвід, повільніше, ніж використання group by
. І якщо ви використовуєте .value('.', nvarchar(max))
для отримання об'єднаних значень, слід змінити це на.value('./text()[1]', nvarchar(max))
for xml
не працює для вас?