You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:23:12