我是SQL Server的初学者,我正在尝试在SQL Server中执行XOR操作,但我无法做到。
我必须按人口显示大面积或大的国家,但不要同时显示两者和显示名称,人口和面积。基本上,如果我没有错的话,它是一个XOR操作。
如果一个国家面积超过300万平方公里或者人口超过2.5亿,那么这个国家就很大。
我试过这个
SELECT name, population, area
FROM world
WHERE (area > 30000000 | population > 25000000) &
(area < 30000000 & population < 25000000)
请建议。
注意:我在http://sqlzoo.net/wiki/SELECT_from_WORLD_Tutorial上尝试此操作,Q.No-8,请选择SQL Engine到SQLSERVER。
答案 0 :(得分:3)
SELECT name,
population,
area
FROM world
WHERE (area > 3000000 AND population <= 25000000) OR -- big area, small population
(area <= 3000000 AND population > 25000000) -- small area, big population
请注意,我使用<=
来表示“较小的”条件。这是为了避免面积等于300万平方公里或人口恰好等于250万的情况。在这种情况下,使用<
将消除数据。
答案 1 :(得分:2)
您可以像这样实施XOR:
SELECT name
, population
, area
FROM world
WHERE (area > 3000000 AND population < 250000000)
OR (area < 3000000 AND population > 250000000)
答案 2 :(得分:2)
SELECT name,
population,
area
FROM world
WHERE (area > 3000000 XOR population > 250000000)
问题希望您这样回答。这是对这个问题使用“ XOR”的正确且简短的方法。
答案 3 :(得分:1)
SELECT name, population, area
FROM world
WHERE (area > 3000000 OR population > 250000000) AND NOT
(area > 3000000 AND population > 250000000)
通过维恩图想象一下,其中a =面积> 3000000,b =人口> 250000000
XOR b等于(a联合b)减(a交集b)
答案 4 :(得分:0)
SELECT name,
population,
area
FROM world
WHERE (area > 300000) <> (population > 25000000)
虽然可读性较差,但更简短。
通常,<>
或!=
可以很好地替代逻辑XOR
。
答案 5 :(得分:0)
Select name, population, area
from world
where (population >= 250000000 AND NOT area >= 3000000) OR
(area >= 3000000 AND NOT population >= 250000000);
这肯定会给您您想要的答案。
答案 6 :(得分:0)
正确答案
从世界中选择姓名,人口,地区 其中NOT(面积> 3000000,人口> 250000000)和 (面积> 3000000或人口> 2.5亿);
答案 7 :(得分:0)
SELECT NAME,
population,
area
FROM world
WHERE area > 3000000
OR population > 250000000
EXCEPT
SELECT NAME,
population,
area
FROM world
WHERE area > 3000000
AND population > 250000000
以上是集合论中的实际表示。
答案 8 :(得分:0)
查询将是这样的:
SELECT name, population, area
FROM world
WHERE (area > 3000000 AND population < 250000000) OR
(area < 3000000 AND population > 250000000);
答案 9 :(得分:-1)
select name, population, area from world
where (area >= 3000000 and population <= 250000000) OR
(area <= 3000000 and population >= 250000000);
这很好。
答案 10 :(得分:-2)
选择名称,人口,地区 来自世界 哪里(区域> 3000000,人口<250000000)或 (面积<3000000 AND人口> 250000000)