【发布时间】:2012-08-03 10:49:54
【问题描述】:
请您帮我处理下一个 oracle sql 查询。
SELECT "NEWS"."NEWSID" as ID,
"NEWS"."SLUG",
"NEWS_TRANSLATION".*,
(SELECT FILENAME FROM NEWS_MEDIA WHERE NEWSID = ID AND rownum <= 1 ORDER BY POSITION ASC) as FILENAME
FROM "NEWS"
INNER JOIN "NEWS_TRANSLATION" ON NEWS.NEWSID = NEWS_TRANSLATION.NEWSID
WHERE (NEWS.PUBLISH = 1) AND (NEWS_TRANSLATION.LANG = :lang)
ORDER BY "NEWS"."NEWSID" DESC;
当我执行这个查询时出现错误
ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
Error at Line: 4 Column: 74
【问题讨论】:
-
如果打算从 news_media 获取新闻项目的 MIN 位置的文件名,我认为 rownum 使用不正确。选择一条记录后将应用“ORDER BY”。它需要被子查询,或者更好的是,与 MIN(position) 分开连接。见oracle.com/technetwork/issue-archive/2006/06-sep/…