2016-03-02 2 views
-2

Я хочу выбрать строки, которые следуют следующим условиям SQL.Выбор строк в SQL, которые следуют определенным условиям

Название таблицы:

Codes_and_Numbers 

У меня есть следующий набор данных:

Code_Name Num_1 Num_2 
    A  10  12 
    A  10  10 
    A  10  10 
    B  17  17 
    B  17  17 
    B  17  17 
    B  17  17 
    C  21  25 
    C  21  23 

Я хочу, чтобы выбрать строки, где NUM_1 и NUM_2 не являются равны, однако, если на другой строке с то же Code_Name, Num_1 и Num_2 равны, тогда я не хочу выбирать ни одну из строк под этим Code_Name.

В приведенном выше наборе данных это будет означать, что будут выбраны только 2 строки для C. Поскольку A имеет две строки с равными Num_1 и Num_2, а все строки B равны.

+3

Вы хотите этого? Или ваш учитель? – dmaij

+1

попробуйте «GROUP BY» ваши коды – dmaij

+0

Итак, каков ожидаемый результат? (С данными образца, как указано.) – jarlh

ответ

0

Вы можете использовать NOT EXISTS:

SELECT Code_Name, Num_1, Num_2 
FROM Codes_and_Numbers AS t1 
WHERE t1.Num_1 <> t1.Num_2 AND 
     NOT EXISTS (SELECT 1 
        FROM Codes_and_Numbers AS t2 
        WHERE t1.Code_Name = t2.Code_Name AND 
         t2.Num_1 = t2.num_2) 
Смежные вопросы