2016-03-02 49 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下的任何行。

在上面的数据集中,这意味着只会选择C的2行。由于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)