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
withID
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