Вот решение, которое будет работать для MySQL. Он использует коррелированный подзапрос в предложении select, чтобы сгруппировать объединенные значения Col2
. Логика заключается в том, что мы агрегируем только значения, которые меньше или равны текущей строке, для данной группы записей, имеющих одно и то же значение Col1
.
SELECT
Col1,
(SELECT GROUP_CONCAT(t2.Col2 ORDER BY t2.Col2) FROM yourTable t2
WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
FROM yourTable t1
ORDER BY
t1.Col1,
t1.Col2;
Здесь тот же запрос в Oracle :
SELECT
Col1,
(SELECT LISTAGG(t2.Col2, ',') WITHIN GROUP (ORDER BY t2.Col2) FROM yourTable t2
WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
FROM yourTable t1
ORDER BY
t1.Col1,
t1.Col2;
Обратите внимание, что единственное реальное изменение - это замена LISTAGG
вместо GROUP_CONCAT
.
Это было некоторое время, но так как у меня точно есть ответ на вопрос, я совместно использую его, и возможно кто-то извлечет выгоду из него.
Jaime de Los Hoyos записал очень хорошую программу, чтобы точно сделать это: Инструментальное средство формирования запросов ODBC.
, К сожалению, веб-сайт Jaime является более не существующим, но можно все еще найти программу и ее исходный код в этом местоположении:
https://sourceforge.net/projects/odbc-query-tool/files/latest_release /
программа является базирующимся GUI и состоит из единственного исполняемого файла, никакая потребность установить что-либо на машине.
профиль Jaime: https://сообщения Jaime stackoverflow.com/users/878998/jaime-de-los-hoyos-m
на форуме, говорящем о его программе: https://forum.powerbasic.com/forum/user-to-user-discussions/source-code/48266-odbc-query-tool-retrieve-information-from-any-database-e asily
Вы можете использовать функцию «Проверить соединение» после создания соединения ODBC через Панель управления> Администрирование> Источники данных.
Чтобы проверить саму команду SQL, вы можете попробовать:
http://www.sqledit.com/odbc/runner.html
http://www.sqledit.com/sqlrun.zip
Или (возможно, проще и полезнее в долгосрочной перспективе) вы можете создать тестовую страницу ASP.NET или PHP за пару минут, чтобы самостоятельно запустить оператор SQL через IIS.
Для специальных запросов очень удобна утилита ODBC Test . Его дизайн и интерфейс больше ориентированы на тестирование различных частей ODBC API. Но он довольно хорошо работает для выполнения запросов и отображения результатов. Он является частью компонентов доступа к данным Microsoft .
Чтобы запустить запрос, вы можете нажать кнопку подключения (или использовать ctrl-F
), выбрать источник данных, ввести запрос, затем ctrl-E
, чтобы выполнить его. и ctrl-R
для отображения результатов (например, если это SELECT или что-то, что возвращает курсор).