显示字符串列以特定字母开头的行

Display row where string column starts with specific letter

我研究了如何解决我的问题,但我使用的编译器一直抛出无效标识符错误。让我解释一下。

我有一个table,列和数据类型分别匹配

Id | City | State
------------------------
NUMBER | VARCHAR2(21) | VARCHAR(2)

我想抓取名称以字母“a”开头的所有非重复城市。我试过下面的查询

SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE "A%";

我也试过了

SELECT CITY
FROM STATION
WHERE CITY LIKE "A%"
ORDER BY CITY;

但我一直收到

ORA-00904: "A%": invalid identifier

我查过类似问题的问题,答案好像是集成了“LIKE”条件。我已经做到了,但是,唉,一个错误。这看起来应该是一个容易解决的问题。有什么想法吗?

使用单引号!双引号仅用于标识符(例如列名、table 名称等),因此会出现错误。

另一方面,单引号代表文字字符串,这就是你在这里的意思:

SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE 'A%';

在这方面,Oracle 严格遵循 ANSI SQL 规范。还有其他数据库允许对字符串使用双引号,并使用其他字符来引用标识符(例如 MySQL)...但我个人发现这会使事情变得更加混乱,他们需要这样做。