与SQL Server 2014中的字符串进行比较时,标识符无效

与SQL Server 2014中的字符串进行比较时,标识符无效,sql,sql-server,Sql,Sql Server,我正在尝试使用HackerRank挑战自学SQL,目前我正在尝试选择亚洲所有指定城市的人口总数 表格结构如下: 对于城市表: +-------------+----------+ | Field | Type | +-------------+----------+ | ID | int(11) | | Name | char(35) | | CountryCode | char(3) | | District | char(20)

我正在尝试使用HackerRank挑战自学SQL,目前我正在尝试选择亚洲所有指定城市的人口总数

表格结构如下:

对于城市表:

+-------------+----------+
| Field       | Type     |
+-------------+----------+
| ID          | int(11)  |
| Name        | char(35) |
| CountryCode | char(3)  |
| District    | char(20) |
| Population  | int(11)  |
+-------------+----------+
+----------------+-------------+
| Field          | Type        |
+----------------+-------------+
| Code           | char(3)     |
| Name           | char(52)    |
| Continent      | char(50)    |
| Region         | char(26)    |
| SurfaceArea    | float(10,2) |
| IndepYear      | smallint(6) |
| Population     | int(11)     |
| LifeExpectancy | float(3,1)  |
| GNP            | float(10,2) |
| GNPOld         | float(10,2) |
| LocalName      | char(45)    |
| GovernmentForm | char(45)    |
| HeadOfState    | char(60)    |
| Capital        | int(11)     |
| Code2          | char(2)     |
+----------------+-------------+
对于
国家/地区
表:

+-------------+----------+
| Field       | Type     |
+-------------+----------+
| ID          | int(11)  |
| Name        | char(35) |
| CountryCode | char(3)  |
| District    | char(20) |
| Population  | int(11)  |
+-------------+----------+
+----------------+-------------+
| Field          | Type        |
+----------------+-------------+
| Code           | char(3)     |
| Name           | char(52)    |
| Continent      | char(50)    |
| Region         | char(26)    |
| SurfaceArea    | float(10,2) |
| IndepYear      | smallint(6) |
| Population     | int(11)     |
| LifeExpectancy | float(3,1)  |
| GNP            | float(10,2) |
| GNPOld         | float(10,2) |
| LocalName      | char(45)    |
| GovernmentForm | char(45)    |
| HeadOfState    | char(60)    |
| Capital        | int(11)     |
| Code2          | char(2)     |
+----------------+-------------+
我的问题是:

SELECT 
    SUM(Population) 
FROM 
    (SELECT 
         City.Population AS Population, 
         Country.Continent AS Continent 
     FROM 
         City 
     INNER JOIN 
         Country ON City.CountryCode = Country.Code) 
WHERE 
    Continent = "Asia";
据我所知,所有国家代码与亚洲国家代码相同的城市的人口总和。但是,我得到以下错误:

第1行错误:ORA-00904:“亚洲”:标识符无效


使用
'Asia'
而不是
“Asia”
默认情况下,字符串文本
括起来

您可以在表/对象标识符中使用
,如:

CREATE TABLE "a c"(b iNT);

INSERT INTO "a c"(b)
VALUES (2), (3);

SELECT *
FROM "a c";
但是您应该使用
[]
引用db对象名称,如:

CREATE TABLE [a c](b iNT);

INSERT INTO [a c](b)
VALUES (2), (3);

SELECT *
FROM [a c];
请注意,只有当
处于打开状态时,此功能才起作用

启用“设置引号的标识符”时,标识符可以用双引号分隔,文字必须用单引号分隔

要将
用作字符串文字,请使用:

SET QUOTED_IDENTIFIER OFF;

SELECT SUM(Population) FROM 
   (SELECT City.Population AS Population, 
           Country.Continent AS Continent 
    FROM City INNER JOIN Country 
    ON City.CountryCode = Country.Code) 
WHERE Continent = "Asia";

使用
'Asia'
而不是
使用
@lad2025,谢谢;双引号
在SQL Server中?如果您使用的是SQL Server-为什么会出现
ORA-00904
错误???@Shaktal如果您想了解更多有关SQL Server的信息,您可以使用提供的视频讲座,它们几乎涵盖了所有主题,搜索SQL。我将非常高兴获得更多反馈,了解我为什么会被否决。所以我可以改进我的答案。