Я знаходжу спосіб об’єднати рядки з різних рядків в один ряд. Я хочу зробити це в багатьох місцях, тому добре функціонувати для полегшення цього. Я спробував з допомогою рішення 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не працює для вас?