Скажем:
Я хочу запросить колу, colB и colC в моей таблице.
Я хочу видеть ОТЛИЧНЫЕ значения, но я не хочу, чтобы кола была критериями различия.
Исключение колы не является опцией.
Что лучший способ состоит в том, чтобы структурировать тот запрос?
Здесь два случая. Допустим, у вас есть данные
A B C (columns)
a b c1
a b c2
. Принятие различных значений A, B дает только один результат (a, b) с двумя значениями для столбца C. Итак, вопрос в том, хотите ли вы видеть все значения C или только одно значение для каждого отдельного значения столбцов A и B?
Если вы хотите увидеть только одно значение C, вы можете написать
SELECT A, B, MAX(C) FROM YourTable
GROUP BY A, B
С другой стороны, если вы хотите увидеть все значения для C, то
SELECT DISTINCT A, B, C FROM YourTable WHERE ROW(A,B) IN
(SELECT A, B FROM YourTable
GROUP BY A, B)
даст вам это. Эта последняя альтернатива необходима, если в таблице есть другие столбцы.
Я не знаю синтаксис для временной таблицы, так что псевдокод, если можно =)
Select Distinct ColB, ColC into @Temp
From SomeTable
Where (predicates)
Select ColA, ColB, ColC
From SomeTable
Inner Join @Temp on (SomeTable.ColB = @Temp.ColB and SomeTable.ColC = @Temp.ColC)
Where (predicates) /* Added for comments */
Надеюсь, это поможет.