Удалить дубли в запросе

1. Pavean 03.12.22 20:52 Сейчас в теме
Есть таблица с таким содержанием:
Строка1 Строка2
Строка1 Строка3
Строка2 Строка1
Строка2 Строка3
Строка3 Строка1
Строка3 Строка2
Для меня строки с колонками где "Строка1 Строка2" равны тем где "Строка2 Строка1", т.е. являются дублями.
Как удалить дубли?

Запрос формирующий таблицу, чтобы легче было варианты предлагать:

ВЫБРАТЬ
	"Строка1" КАК Колонка
ПОМЕСТИТЬ ВТ

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Строка2"

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Строка3"
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Т1.Колонка КАК Колонка1,
	Т2.Колонка КАК Колонка2
ПОМЕСТИТЬ Данные
ИЗ
	ВТ КАК Т1
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК Т2
		ПО (НЕ Т1.Колонка = Т2.Колонка)
Показать

Собственно из таблицы "Данные" и надо удалить дубли.
Реальная таблица конечно побольше и посложнее...
По теме из базы знаний
Найденные решения
5. RustamZz 03.12.22 21:24 Сейчас в теме
(1)
ВЫБРАТЬ
	Тз.Поле1,
	Тз.Поле2
ИЗ
	Тз КАК Тз
ГДЕ
	НЕ (Тз.Поле2, Тз.Поле1) В
				(ВЫБРАТЬ
					Тз.Поле1,
					Тз.Поле2
				ИЗ
					Тз КАК Тз
				ГДЕ
					Тз.Поле1 < Тз.Поле2)
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. RustamZz 03.12.22 21:24 Сейчас в теме
(1)
ВЫБРАТЬ
	Тз.Поле1,
	Тз.Поле2
ИЗ
	Тз КАК Тз
ГДЕ
	НЕ (Тз.Поле2, Тз.Поле1) В
				(ВЫБРАТЬ
					Тз.Поле1,
					Тз.Поле2
				ИЗ
					Тз КАК Тз
				ГДЕ
					Тз.Поле1 < Тз.Поле2)
Показать
7. Pavean 03.12.22 21:49 Сейчас в теме
(5)Не работает. Пустой результат.

ВЫБРАТЬ
	"Строка1" КАК Колонка
ПОМЕСТИТЬ ВТ

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Строка2"

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Строка3"
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Т1.Колонка КАК Колонка1,
	Т2.Колонка КАК Колонка2
ПОМЕСТИТЬ Данные
ИЗ
	ВТ КАК Т1
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК Т2
		ПО (НЕ Т1.Колонка = Т2.Колонка)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Данные.Колонка1 КАК Колонка1,
	Данные.Колонка2 КАК Колонка2
ИЗ
	Данные КАК Данные
ГДЕ
	НЕ (Данные.Колонка1, Данные.Колонка2) В
				(ВЫБРАТЬ
					Данные.Колонка2,
					Данные.Колонка1
				ИЗ
					Данные КАК Данные)
Показать
8. RustamZz 03.12.22 21:52 Сейчас в теме
(7)
ГДЕ Тз.Поле1 < Тз.Поле2
у вас пропущено
9. Pavean 03.12.22 22:00 Сейчас в теме
(8)Вот спасибо! Работает.
Надо только понять как и только ли со строковыми данными.
10. RustamZz 03.12.22 22:03 Сейчас в теме
(9) null и неограниченные строки не работают
2. Gendelf 03.12.22 21:16 Сейчас в теме
За закладке Дополнительно попробуйте галку поставить - если запрос был
Если уже ТЗ, то Свернуть()
4. Pavean 03.12.22 21:24 Сейчас в теме
(2)Смысл в сворачивании и различных? Строки с точки зрения SQL разные. Она не будет их обрабатывать как дубли.
Надо запрос как то так написать чтобы самому их отсеить.
3. user1863362 03.12.22 21:24 Сейчас в теме
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ТаблицаДанных.Поле1 КАК Поле1,
    ТаблицаДанных.Поле2 КАК Поле2
ИЗ
    Таблица КАК ТаблицаДанных
ЛЕВОЕ СОЕДИНЕНИЕ 
    Таблица КАК ТаблицаДублей
ПО
    ТаблицаДублей.Поле1 = ТаблицаДанных.Поле2 
    И ТаблицаДублей.Поле2 = ТаблицаДанных.Поле1 
ГДЕ
    ТаблицаДанных.Поле1 ЕСТЬ NULL
Показать
6. Pavean 03.12.22 21:39 Сейчас в теме
(3)Не работает. Что в общем-то логично. В вашем варианте условие ГДЕ никогда не выполнится.
Для лучшего понимания, из временной таблицы "Данные" надо удалить дубли:

ВЫБРАТЬ
	"Строка1" КАК Колонка
ПОМЕСТИТЬ ВТ

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Строка2"

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Строка3"
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Т1.Колонка КАК Колонка1,
	Т2.Колонка КАК Колонка2
ПОМЕСТИТЬ Данные
ИЗ
	ВТ КАК Т1
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК Т2
		ПО (НЕ Т1.Колонка = Т2.Колонка)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Данные.Колонка1 КАК Колонка1,
	Данные.Колонка2 КАК Колонка2
ИЗ
	Данные КАК Данные
		ЛЕВОЕ СОЕДИНЕНИЕ Данные КАК Дубли
		ПО Данные.Колонка1 = Дубли.Колонка2
			И Данные.Колонка2 = Дубли.Колонка1
ГДЕ
	Дубли.Колонка1 ЕСТЬ NULL
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот