使用In语句时缺少表达式

时间:2018-03-28 05:00:43

标签: sql oracle

在实施以下查询时:

select distinct(city) 
from station 
where substr(distinct(city),1,1) IN ['A','E','I','O','U'];

我收到以下错误:

  

第1行的错误:   ORA-00936:缺少表达

使用Oracle Sql。 我仍然是使用SQL的初学者,因此无法想出这个

3 个答案:

答案 0 :(得分:1)

不需要在哪里写明显不同,因为当你提到选择列时,你会得到不同的价值。 IN的语法和

expression IN (value1, value2, ... value_n);

更正了查询

select distinct city
from station 
where substr(city,1,1) IN ('A','E','I','O','U');

答案 1 :(得分:0)

你的陈述中有两个拼写错误。

  • 使用经典的paranthesis而不是括号。
  • distinct clause不能用作substr function内的表达式(最后结果已成为distinct)。

让你的sql像这样:

select distinct(city) 
from station 
where substr(city,1,1) IN ('A','E','I','O','U');

答案 2 :(得分:0)

SELECT city
FROM station 
WHERE SUBSTR(city,1,1) IN ('A','E','I','O','U')
GROUP BY city;

最好使用GROUP BY代替DISTINCT