Мне нужно что-то вроде select * from table group by * having count(*) > 1
, который не работает на mssql2008r2 и postgresql. Запрос выполняется несколько раз в неделю в разных таблицах. Вопрос в основном был поставлен before.Группа MSSQL по всем столбцам
Потому что возникла путаница в том, почему кому-то когда-либо понадобится это, когда есть DISTINCT: мне нужен запрос, чтобы идентифицировать идентичные строки в таблице без первичного ключа. Я знаю, что это не обычный случай, но это именно то, что у меня есть для документ и отчет.
Группировка по подзапроса, который возвращает все столбцы таблицы и форматируется как строка не работает:
select * from table group by (select column_name + ', ' as data() from information_schema.columns where table_name = 'table' for xml path(''))
Возврат ошибки Сообщ. 144.
EDIT: При написании запроса я не знаю названия столбцов. Поэтому мне нужен общий запрос без указания имен столбцов.
EDIT2: Предлагаемый динамический код sql отлично работает, но не подходит для моего случая, так как было бы проще создать GROUP BY String в моем внешнем коде. Поэтому я все еще ищу способ решить эту проблему одним запросом.
Если вы замените * всеми столбцами таблицы, это сработает. У меня не было проблемы? Описание всех столбцов? – gustavodidomenico
Точно. Я не знаю всех столбцов заранее. Я редактировал вопрос. И, как я сказал, запрос всех столбцов в подзапросе и конкатенирование в виде строки не работает. – Juergen
Сколько таблиц вам нужно беспокоиться и как часто это нужно выполнять? Звучит как одноразовое упражнение, так почему бы просто не укусить пулю и написать кучу SELECT ... заявлений? – DavidG