如何解决显示字符串列以特定字母开头的行
我研究了如何解决我的问题,但是我使用的编译器不断抛出无效的标识符错误。让我解释一下。
我有一个表,它们的列和数据类型分别匹配
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
我查找了具有类似问题的问题,并且答案似乎整合了“喜欢”条件。我已经做到了,但是可惜,这是一个错误。看来这应该是一个容易解决的问题。有什么想法吗?
解决方法
使用单引号!双引号仅用于标识符(例如列名,表名等),因此会出现错误。
另一方面,单引号代表文字字符串,这就是您在这里的意思:
SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE 'A%';
在这方面,Oracle严格遵循ANSI SQL规范。还有其他数据库允许对字符串使用双引号,并使用其他字符对标识符加引号(例如MySQL)...但是我个人发现,这样做会使事情变得更加混乱,而他们需要这样做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。