记录Harde学习成长生活的点点滴滴.
« »
2011-08-22
数据库

23 次浏览

Ora-01791 不是Selected表达式(SELECT式が無効です)

最近做一个项目用到了Oracle数据库,今天在调查原代码时遇到一处错误,提示”SELECT式が無効です”百思不得其解。后来发现
是”DISTINCT”关键字在作祟。原句部分代码如下

1
2
3
4
5
6
SELECT DISTINCT
  F200.PLACE_NO AS PLACE_NO
--省略若干代码
ORDER BY
  F200.UP_DATE || F200.UP_TIME
  ,F200.YOYAKU_NO

去掉DISTINCT就搞定了~

借用:http://fluagen.blog.51cto.com/146595/95302作者的原话:

查到关于这个ora错误的解释:
如果在ORDER BY中指定多个列,结果将先按照子句中的第一个列排序,然后第二个,依此类推
在SELECT中未出现的列名也可用于ORDER BY 子句中,主要TABLE中有就行,但如果SELECT子句中出现了DISTINCT关键字,则只能用出现过的列名,而且如果SELECT子句中使用了任何运算符,在ORDER BY 子句中必须保持和SELECT子句中表达式完全一致,否则出现ORA-01791 ERROR

日志信息 »

该日志于2011-08-22 13:41由 harde 发表在数据库分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

相关日志 »

随机日志

没有评论

发表评论 »

使用新浪微博登陆

返回顶部
分享按钮