oracle排序子句的特殊写法与ORA-01785错误
刚刚写的SQL语句在执行的时候报【ORA-01785: ORDER BY item must be the number of a SELECT-list expression】错误,于是自己百度了一下相关错误,发现是和Oracle排序语句的特殊写法有关系,这里记录一下。
先不说错误的问题,我们先用常规的写法写一句带排序子句的SQL语句。
SELECT ID, CODE, NAME FROM STUDENT ORDER BY CODE;
这样写是能够正常执行的。
然后说一下排序子句的特殊写法。特殊的写法就是在ORDER BY排序子句中,可以用数字(相当于下标 + 1)代替要用来排序的字段。比如说上面的SQL语句,用来排序的字段是CODE,它在前面的SELECT子句的字段中排第二位,那么就可以用数字2来代替它。
SELECT ID, CODE, NAME FROM STUDENT ORDER BY 2;
这样查询出来的结果和上面的语句查询出来的结果是一样的。
然后我们来做个试验,把ORDER BY子句中的数字改成4试一下,这时数字4在前面的SELECT子句中是没有对应的字段的,因为SELECT子句中只有三个字段。
SELECT ID, CODE, NAME FROM STUDENT ORDER BY 4;
不出意料的,报ORA-01785的错误了。
到这里我们就可以明白,这个错误是因为ORDER BY子句中的数字代表的字段位数超出SELECT子句中的字段个数引起的。意思就是说,当SELECT子句中的字段有5个,那么ORDER BY子句中的数字就不能大于5,范围区间是[1,5]。
当然,也可以进行多个字段排序和升序降序排序的。
SELECT ID, CODE, NAME FROM STUDENT ORDER BY 2 DESC, 3;
看到这里,当下次遇到ORA-01785错误的时候,聪明的你就知道怎么解决啦。
"夕阳无限好,只是近黄昏。"
oracle排序子句的特殊写法与ORA-01785错误的更多相关文章
- Oracle分页查询语句的写法(转)
Oracle分页查询语句的写法(转) 分页查询是我们在使用数据库系统时经常要使用到的,下文对Oracle数据库系统中的分页查询语句作了详细的介绍,供您参考. Oracle分页查询语句使我们最常用的 ...
- Oracle Fetch子句
Oracle Fetch子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,将学习如何使用Oracle FETCH子句来限制查询返回的行数. ...
- Oracle存储过程中跳出循环的写法
注:本文来源于: < Oracle存储过程中跳出循环的写法 > Oracle存储过程中跳出循环的写法 记录exit和return的用法 1:exit用来跳出循环 loop IF V_ ...
- PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释
PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora原理解释 oracle网络配置三个配置文件 lis ...
- ORDER BY排序子句
10.ORDER BY排序子句 用于指定将查询结果排序的字段. //查询emp表所有记录,结果按ename升序排列 select empno,ename from emp or ...
- Oracle Like子句
Oracle Like子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle LIKE运算符来测试列中的值是否与指定 ...
- Oracle Between子句
Oracle Between子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle BETWEEN运算符来选择值在一 ...
- Oracle In子句
Oracle In子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle IN运算符来确定值是否与列表或子查询中的任 ...
- Oracle Or子句
Oracle Or子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,我们来学习如何使用Oracle OR运算符来组合两个或更多的布尔表达式. ...
随机推荐
- laravel项目本地数据库连接错乱原因和解决方法
由于在本地建了两个laravel项目,test.me 和 api-test.me,当我在 test.me 中调用 curl 去请求 api-test.me 的方法,试图获取数据时, 接口一直返回没有找 ...
- Java开发桌面程序学习(四)——常用应用布局模板和简单分析
布局 前言 刚开始的时候,不知道使用什么布局,发现SceneBuilder其实有8.5版本的,里面就是有提供一个简单的桌面程序模板,8.5可以去官网下载,不过网速好像有点慢,慢慢等吧,官网下载地址 布 ...
- `protected` vs `private`
private 标识为 private 的属性为私有属性,不能在除自己外的地方进行访问. protected 标识为 protected 的属性为受保护的属性,与私有属性类似,但还可以在继承类中进行访 ...
- wpf datagrid field to image converter 字段 图片转化器
<DataGridTemplateColumn Header="Binding"> <DataGridTemplateColumn.CellTemplate> ...
- dependencies和devDependencies区别
vue-cli3.x项目的package.json中,有两种依赖: dependencies:项目依赖.在编码阶段和呈现页面阶段都需要的,也就是说,项目依赖即在开发环境中,又在生产环境中.如js框架v ...
- System 类初探
System 类 操作方法 取得当前的系统时间 currentTemiMillis() public static long currenTimeMillis() ; 实例: 统计某些操作的执行时间 ...
- django支付宝支付集成
概要 本文是关于django集成支付宝[电脑网站支付]功能的过程记录. 功能逻辑主要分为两块: 用户下单跳转至支付宝支付界面 支付成功的回调验证 本文用到的alipay-sdk是基于阿里开发文档htt ...
- [转]Eclipse插件开发之基础篇(6) SWT简介
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/09/01/eclipse_plugin_1_3_1.html SWT(Standard Widget ...
- 6.JavaCC官方入门指南-例1
例1:整数加法运算 在这个例子中,我们将判断如下输入的式子是否是一个合法的加法运算: 99 + 42 + 0 + 15 并且在输入上面式子的时候,数字与加号之间的任何位置,都是可以有空格或者换 ...
- mysql connector c++ 1.1 API初步体验
mysql connector c++ 1.1 API初步体验 1,常用的头文件 #include <mysql_connection.h> #include <mysql_driv ...