这是我的问题:
SELECT * FROM Auta WHERE SUBSTR(spz, 1, 2) =
(SELECT SUBSTR(spz, 1, 2) FROM Auta WHERE typ = 'BMW' AND specifikacia_typu = 'Z1' LIMIT 1);
当我运行它时,我收到了这个错误:
ORA-00907: missing right parenthesis
我有点绝望,我已经尝试在查询中的任何地方添加括号,我仍然得到错误?查询中有3个左括号和3个右括号,所以一切都应该没问题。
答案 0 :(得分:7)
Oracle中不存在LIMIT子句。相反,你会使用rownum:
SELECT *
FROM Auta
WHERE SUBSTR(spz, 1, 2) = (SELECT SUBSTR(spz, 1, 2)
FROM Auta
WHERE typ = 'BMW'
AND specifikacia_typu = 'Z1'
AND ROWNUM = 1);
答案 1 :(得分:3)
“LIMIT 1”是什么?我不相信这是正确的Oracle语法。如果您尝试将输出限制为一行,请使用:
WHERE rownum = 1
答案 2 :(得分:3)
就我所知,LIMIT 1是一种MySQL主义。
SELECT *
FROM Auta
WHERE SUBSTR(spz, 1, 2) =
(SELECT SUBSTR(spz, 1, 2)
FROM Auta
WHERE typ = 'BMW'
AND specifikacia_typu = 'Z1'
AND ROWNUM = 1);
...应该给你预期的结果