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

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

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

    ОБЪЕДИНИТЬ

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

    ОБЪЕДИНИТЬ

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

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

Собственно из таблицы "Данные" и надо удалить дубли.
Реальная таблица конечно побольше и посложнее...
---
```1c
    ВЫБРАТЬ
    Тз.Поле1,
    Тз.Поле2
    ИЗ
    Тз КАК Тз
    ГДЕ
    НЕ (Тз.Поле2, Тз.Поле1) В
    (ВЫБРАТЬ
    Тз.Поле1,
    Тз.Поле2
    ИЗ
    Тз КАК Тз
    ГДЕ
    Тз.Поле1 < Тз.Поле2)
```
---
```1c
    ВЫБРАТЬ
    Тз.Поле1,
    Тз.Поле2
    ИЗ
    Тз КАК Тз
    ГДЕ
    НЕ (Тз.Поле2, Тз.Поле1) В
    (ВЫБРАТЬ
    Тз.Поле1,
    Тз.Поле2
    ИЗ
    Тз КАК Тз
    ГДЕ
    Тз.Поле1 < Тз.Поле2)
```
---
Не работает. Пустой результат.

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

    ОБЪЕДИНИТЬ

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

    ОБЪЕДИНИТЬ

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Данные.Колонка1 КАК Колонка1,
    Данные.Колонка2 КАК Колонка2
    ИЗ
    Данные КАК Данные
    ГДЕ
    НЕ (Данные.Колонка1, Данные.Колонка2) В
    (ВЫБРАТЬ
    Данные.Колонка2,
    Данные.Колонка1
    ИЗ
    Данные КАК Данные)
```
---
```1c
    ГДЕ Тз.Поле1 < Тз.Поле2
```
 у вас пропущено
---
Вот спасибо! Работает.
Надо только понять как и только ли со строковыми данными.
---
null и неограниченные строки не работают
---
За закладке Дополнительно попробуйте галку поставить - если запрос был
Если уже ТЗ, то Свернуть()
---
Смысл в сворачивании и различных? Строки с точки зрения SQL разные. Она не будет их обрабатывать как дубли.
Надо запрос как то так написать чтобы самому их отсеить.
---
```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ТаблицаДанных.Поле1 КАК Поле1,
    ТаблицаДанных.Поле2 КАК Поле2
    ИЗ
    Таблица КАК ТаблицаДанных
    ЛЕВОЕ СОЕДИНЕНИЕ
    Таблица КАК ТаблицаДублей
    ПО
    ТаблицаДублей.Поле1 = ТаблицаДанных.Поле2
    И ТаблицаДублей.Поле2 = ТаблицаДанных.Поле1
    ГДЕ
    ТаблицаДанных.Поле1 ЕСТЬ NULL
```
---
Не работает. Что в общем-то логично. В вашем варианте условие ГДЕ никогда не выполнится.
Для лучшего понимания, из временной таблицы "Данные" надо удалить дубли:

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

    ОБЪЕДИНИТЬ

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

    ОБЪЕДИНИТЬ

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

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

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