Oracle SQL使用IN语句时遇ORA-00936缺失表达式错误求助
解决ORA-00936错误:你的SQL语句修正方案
嘿,我来帮你搞定这个Oracle SQL的错误!你遇到的ORA-00936: missing expression是因为语句里有两个明显的语法问题,我给你一步步拆解:
错误1:
DISTINCT的用法不对DISTINCT是用来对整个查询结果集去重的,不能嵌套在SUBSTR函数里面当参数。你要获取每个城市的首字母,直接用city字段就行,DISTINCT应该放在SELECT后面修饰要查询的字段。错误2:
IN子句的语法错误
在Oracle中,IN后面必须使用**圆括号()**来包裹取值列表,而你用的方括号[]是不合法的语法,这也是导致报错的原因之一。
修正后的正确SQL语句
SELECT DISTINCT city FROM station WHERE SUBSTR(city, 1, 1) IN ('A', 'E', 'I', 'O', 'U');
简单解释下逻辑
这条语句会先从station表中筛选出首字母为元音(A/E/I/O/U)的城市记录,然后通过DISTINCT关键字去掉重复的城市名称,最终得到你需要的不重复的目标城市列表。
内容的提问来源于stack exchange,提问作者Hartej Singh Kathuria
相关产品推荐
相关产品推荐

