В SQL Server почему-то народ часто сталкивается с проблемой объединения значений нескольких строк в одну. Например, допустим, что есть запрос:
SELECT ColumnName FROM TableName
Допустим, что запрос возвращает три строки:
Иванов Петров Сидоров
А теперь допустим, что ты хочешь вывести результат не в виде трех строк, а в виде одной строки. И еще хуже, в виде одной колонки, да еще и связать с результатом другого запроса. Самый простейший вариант - написать хранимую процедуру, которая будет читать данные с помощью курсора, объединять их в одну переменную и возвращать результат в виде varchar значения. Простое решение, но не единственное. Иногда просто нельзя писать процедуру.
Если не хочешь писать процедур, SQL Serer позволяет обойтись простым запросом SELECT, просто нужно схитрить с помощью конструкции FOR XML PATH:
SELECT ColumnName + ' ' AS [text()] FROM TableName FOR XML PATH ('')
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
в Mysql пользуюсь group_concat, очень удобная и довольно таки шустрая функция
Во как! Странно почему не предусмотрели какой-нибудь GROUP_CONCAT()
Михаил...немного не в тему,но вот на днях "вскрыли" БД сената США...я сразу вспомнил раздел в Web-сервер глазами хакера...Вы удивлены действиями lulzsec? ))
И вообще как вы прокомментируете их деятельность?
Это их право и их выбор. Я не поддерживаю подобных действий.
А я правильно понял что в бд хранятся не структурированные данные? А чего же так?
почему не структурированные?
Чёза бред, вы хоть сами пробовали свой запрос прежде чем предлогать?
а нечё что в ответе мы получим You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS [text()]
?
а "нечё" что в заметке говориться про SQL Server, а не MySQL?
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.