2011-11-07 63 views
0

這是我的表app_extra(SQL-T-SQL)選擇命令只有特定的值?

的AppID; AppExtraID
100; 0
100; 1
100; 3
100; 7
100; 8
100; 9
110 ; 0
110; 2
110; 4
110; 7
110; 9
115; 0
115; 2
115; 6
115; 8
120; 0
120; 1
120; 10
130; 0
130; 7
130; 8
130; 10
140; 0
140; 1
140; 3
150; 0
150; 2
150; 6
150; 7
150; 8
150; 10
160; 0
160; 8
160; 10
165; 0
165; 8
165; 10
170; 0
170; 2
170; 8
170; 10
180; 0
180; 1
180; 5
180; 7
180; 10
185; 0
185; 1
185; 7
185; 10
190; 0
190; 2

我想知道如何有隻的AppID 表示沒有9和10 AppExtraID

謝謝!

回答

2

我看到你做了什麼......

SELECT DISTINCT AppID 
FROM app_extra 
WHERE AppID NOT IN 
    (SELECT DISTINCT AppID from app_Extra 
    WHERE AppExtraID IN (9, 10)) 

內選擇將確定所有App ID有9或10個額外的。這些行將在主選擇中被排除。任何與9或10相關的AppID都將被刪除,即使它們還有另外的ID。

+0

非常感謝! :) –

+0

這將得到記錄,只有缺少9或10不是那些都缺少。 – HLGEM

+0

這應該得到所有沒有9或10的記錄。 –

2
select distinct AppId 
from app_extra 
where AppExtraID not in (9, 10) 

修改爲適合您的意見的願望。

+0

打我吧。很好的例子。 – JClaspill

+0

不,這隻會刪除包含9或10的行。我希望T-SQL命令只有ID不包含9或10. –

+0

@MartinGemme我修改了我的答案。這會給你你需要的。 – 2011-11-07 20:19:20

0
SELECT DISTINCT AppID FROM app_extra WHERE AppExtraID NOT IN(9,10) 
+0

不,這隻會刪除包含9或10的行。我希望T-SQL命令只有ID不是9或10. –

1

要獲得AppID獨特的列表履行reqirement:

SELECT AppID 
FROM tbl 
WHERE AppExtraID NOT IN (9, 10) 
GROUP BY 1