Sql 为什么这个选择不起作用

Sql 为什么这个选择不起作用,sql,sql-server,Sql,Sql Server,我试图学习sql,但我发现了这个错误-这是什么意思 我想问的是:那些GDP超过欧洲任何国家的国家 错误: [Microsoft][ODBC SQL Server驱动程序][SQL Server]子查询返回了更多信息 大于1的值。当子查询后跟=、!=、时,不允许这样做, =或当子查询用作表达式时。 (SQL-21000) 错误的原因是子查询返回多个值 根据您的要求,若您需要gdp大于欧洲gdp的,则应使用以下任一查询: SELECT name, gdp FROM bbc WHERE

我试图学习sql,但我发现了这个错误-这是什么意思

我想问的是:那些GDP超过欧洲任何国家的国家

错误:

[Microsoft][ODBC SQL Server驱动程序][SQL Server]子查询返回了更多信息 大于1的值。当子查询后跟=、!=、时,不允许这样做, =或当子查询用作表达式时。 (SQL-21000)


错误的原因是子查询返回多个值

根据您的要求,若您需要
gdp
大于欧洲gdp的,则应使用以下任一查询:

SELECT
  name,
  gdp
FROM
  bbc 
WHERE gdp > 
  (
    SELECT
      MAX(gdp)
    FROM
      bbc
    WHERE
      region = 'Europe'
  )
或者,如果您需要
gdp
大于欧洲gdp的至少一个(差别只是
MIN
MAX
):


错误的原因是子查询返回多个值

根据您的要求,若您需要
gdp
大于欧洲gdp的,则应使用以下任一查询:

SELECT
  name,
  gdp
FROM
  bbc 
WHERE gdp > 
  (
    SELECT
      MAX(gdp)
    FROM
      bbc
    WHERE
      region = 'Europe'
  )
或者,如果您需要
gdp
大于欧洲gdp的至少一个(差别只是
MIN
MAX
):


当内部查询返回超过1个值时发生。尝试:

select name, gdp from bbc where gdp > (select TOP 1 gdp from bbc where region = 'Europe')

当内部查询返回超过1个值时发生。尝试:

select name, gdp from bbc where gdp > (select TOP 1 gdp from bbc where region = 'Europe')

这意味着查询
selectgdp from bbc where region='Europe'
返回超过1行,并且
where gpd>
条件不能与多个值进行比较。您需要更新查询以仅返回1行。

这意味着查询
从bbc选择gdp,其中region='Europe'
返回超过1行,并且
其中gpd>
条件不能与多个值进行比较。您需要更新查询以仅返回1行。

运行查询的这一部分

从bbc中选择gdp,其中地区=‘欧洲’


如果返回的行数超过1行,则将失败。您需要在where子句中更具选择性。

运行查询的这一部分

从bbc中选择gdp,其中地区=‘欧洲’


如果返回的行数超过1行,则将失败。您需要在where子句中更具选择性。

您可以尝试使用一个值-基于
Min、Max或TOP 1

注:不能将一个值与集合进行比较

select name, gdp from bbc 

where gdp > 

(select TTOP(1) gdp from bbc where region = 'Europe')


您可以尝试使用一个值-基于
Min、Max或TOP 1

注:不能将一个值与集合进行比较

select name, gdp from bbc 

where gdp > 

(select TTOP(1) gdp from bbc where region = 'Europe')


该消息充分描述了错误:您的表在欧洲有许多国家,因此如果子查询中没有一些聚合或更多约束,则无法应用
运算符:

select name, gdp from bbc 

where gdp > 

(
select max(gdp) from bbc
where region = 'Europe'

)
添加
max
可确保精确选择一个数字,该数字是所有欧洲国家中GDP最高的1。

1您最好立即选择德国的GDP:)

消息充分描述了错误:您的表中有许多欧洲国家,因此如果子查询中没有一些聚合或更多约束,则无法应用
运算符:

select name, gdp from bbc 

where gdp > 

(
select max(gdp) from bbc
where region = 'Europe'

)
添加
max
可确保精确选择一个数字,该数字是所有欧洲国家中GDP最高的1。

1你最好马上选择德国的GDP:)

这是一个很好的去处

select name, gdp from bbc 
where gdp > ANY
(
select gdp from bbc
where region = 'Europe'
)

“…超过欧洲任何国家…”。就像答案一样。

这是一个很好的地方,可以扫除学术上的灰尘

select name, gdp from bbc 
where gdp > ANY
(
select gdp from bbc
where region = 'Europe'
)

“…超过欧洲任何国家…”。就像答案一样。

bbc的
bbc
中有几个欧洲地区。您无法将标量值与列表进行比较。嗯,读取错误消息不是很明显吗?当子查询只返回单个值时,您只能使用带有>运算符的子查询。您可能最好解释一下要获得更好的帮助需要实现什么。bbc中有几个欧洲地区。您无法将标量值与列表进行比较。嗯,读取错误消息不是很明显吗?当子查询只返回单个值时,您只能使用带有>运算符的子查询。您可能最好解释一下要获得更好的帮助需要实现什么。