Выберите Отличительный Вопрос Sql Сервера - PullRequest
0 голосов
/ 02 ноября 2009

У меня следующая структура таблицы.

 A | B | C

Я хочу вывести столбцы A и B, где все результаты A и B различны. Я хочу игнорировать столбец C. Мое понимание отдельного ключевого слова в том, что оно просматривает всю строку, а не возвращаемые вами столбцы. Есть идеи, как мне это сделать?

Ответы [ 4 ]

3 голосов
/ 02 ноября 2009

Не так. DISTINCT смотрит на любые столбцы, которые вы укажете. Так что для вас, SELECT DISTINCT A, B FROM table.

Я бы предпочел GROUP BY: SELECT A, B FROM table GROUP BY A, B

2 голосов
/ 02 ноября 2009

Ваше понимание неверно. DISTINCT не смотрит на весь ряд. Вы пробовали что-то подобное?

SELECT DISTINCT(A, B) FROM t WHERE ...
0 голосов
/ 02 апреля 2015

выберите различные a, b, row_number () over (разделить на порядок на a) как rn на # T1 (выберите различный b, a из таблицы) d

обновление # T1 установить a = null, где rn> 1

выберите a, b из # T1

0 голосов
/ 02 ноября 2009

SELECT DISTINCT не просматривает всю строку в базе данных, он просто просматривает запрошенные столбцы. Таким образом, вы можете просто сделать SELECT DISTINCT a, b FROM mytable, и он будет полностью игнорировать столбец c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...