sql - 显示字符串列以特定字母开头的行
问题描述
我研究了如何解决我的问题,但我使用的编译器不断抛出无效标识符错误。让我解释。
我有一个表,其中的列和数据类型分别匹配
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”条件。我已经这样做了,但是,唉,一个错误。这似乎应该是一个容易解决的问题。有任何想法吗?
解决方案
使用单引号!双引号仅用于标识符(例如列名、表名等),因此会出现错误。
另一方面,单引号代表文字字符串,这就是您的意思:
SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE 'A%';
在这方面,Oracle 严格遵循 ANSI SQL 规范。还有其他数据库允许对字符串使用双引号,并使用其他字符来引用标识符(例如 MySQL)......但我个人发现这会使事情变得更加混乱,他们需要这样做。
推荐阅读
- php - 将过滤器添加到 acf 关系字段
- python - Unexpected result in pandas pivot_table
- r - 如何在 R 中创建邮政编码边界
- coq - 部分 Coq 标准库无法加载
- javascript - 如何发出路由器事件
- php - 如果值与PHP中数组中的其他值相关,如何从数组中删除数组?
- java - 来自未知来源的 log4j2 日志
- firebase - 需要帮助在 firebase 数据库参考中连接登录的用户名。Javascript
- kotlin - 当多个 Singles 完成时执行某些操作(又名 combineLatest for Single)
- python - Python初学者-TypeError:'str'对象不可调用