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

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. rovodap 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
Показать
Оставьте свое сообщение
Вакансии
Ведущий Инженер - программист 1С
Новокузнецк
зарплата от 100 000 руб.
Полный день

Программист
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день

Главный специалист (Программист 1с)
Подольск
зарплата от 100 000 руб. до 110 000 руб.
Полный день

Программист 1С
Подольск
зарплата от 150 000 руб. до 200 000 руб.
Полный день

Аналитик (оперативный учет)
Москва
зарплата от 150 000 руб. до 300 000 руб.
Полный день