SQL简单请求

SQL简单请求,sql,sql-server,Sql,Sql Server,我有一张桌子看起来像: ID | Advert_id | Iso_code ----|------------|----------- 1 | 22 | en_US 2 | 22 | de_DE 3 | 11 | zh_CE 4 | 11 | nl_NL 我需要返回ID例如,我有Advert\u ID=22withID1和iso\u code=en\u-US和de\u-de但是如果Advert\u-ID有iso

我有一张桌子看起来像:

ID  | Advert_id  | Iso_code
----|------------|-----------
1   | 22         | en_US
2   | 22         | de_DE
3   | 11         | zh_CE
4   | 11         | nl_NL
我需要返回
ID
例如,我有
Advert\u ID=22
with
ID
1和
iso\u code=en\u-US
de\u-de
但是如果
Advert\u-ID
iso\u-code=en\u-US
则只返回
ID=1
,如果不返回所有ID(
Advert\u ID=11
没有
iso\u code=en\u US
所以返回
ID
3和4)

使用
或不存在()

测试设置:

返回:

+----+-----------+----------+
| id | advert_id | iso_code |
+----+-----------+----------+
|  1 |        22 | en_US    |
|  3 |        11 | zh_CE    |
|  4 |        11 | nl_NL    |
+----+-----------+----------+      
根据您的评论:

我需要选择所有的“Advarte_ID”并检查iso_代码,如果='en_US'返回仅带有'en_US'的ID

如果我非常了解你,这将有助于:

SELECT ID
FROM YourTablName
WHERE iso_code = 'en_US';
这将只返回带有'iso_code='en_US'的
Advert_ID
s

更新:

IF EXISTS (SELECT * FROM YourTable WHERE iso_code = 'en_US')
BEGIN
SELECT ID
FROM YourTablName
WHERE iso_code = 'en_US';
END
  ELSE
    BEGIN
      SELECT ID
      FROM YourTable;
    END

你们使用的是什么类型的数据库?对不起,伙计们,sql Server,所以也许你们想
从表中选择id,其中Advert\u id=22,iso\u code='en\u US'
?好的,这只是一个例子,我需要选择所有的“Advarte\u id”,并检查iso\u code if='en\u US'只返回带有“en_US”的ID,请阅读并接受回答不准确,但它可以帮助我确定,但我还需要返回ID,其中iso_代码不等于“en_US”,因此请选择所有ID,在注释中,如果iso_代码有en_US,请说return only ID with en_US,如果没有返回,请返回//我需要选择所有“Advarte_ID”,并检查iso_代码If='en_US“仅返回带有‘en_US’的ID,但如果iso_代码没有en_US,则返回其拥有的所有ID,这就是我想要的。抱歉,我不知道如何显示它。谢谢
IF EXISTS (SELECT * FROM YourTable WHERE iso_code = 'en_US')
BEGIN
SELECT ID
FROM YourTablName
WHERE iso_code = 'en_US';
END
  ELSE
    BEGIN
      SELECT ID
      FROM YourTable;
    END