189 8069 5689

oracle查询怎么排序 oracle 查询结果排序

oracle笔记之简单查询、限定查询和排序

别名

成都创新互联公司作为成都网站建设公司,专注重庆网站建设、网站设计,有关企业网站建设方案、改版、费用等问题,行业涉及发电机回收等多个领域,已为上千家企业服务,得到了客户的尊重与认可。

oracle别名如果别名包含空格 特殊字符(如# $) 或需区分大小写(Name)需要用双引号把别名引起来

select ename Name

sal* Annual Salary

from emp;

列的别名可用于select和order by子句中 但是不能用在where子句中

连接操作符 ||

select ename||job as Employees

from emp;

原义字符串 包含在select列表中的一个字符 数字或日期 而不是列名或别名 使用原义字符串可增强输出的可读性

select ename|| is a ||job

as Employees from emp;

去除重复行distinct

select distinct deptno

from emp;

sql*plus登录

sqlplus [username[/password[@database]]]

在sql*plus中编辑sql缓冲区中的sql语句

SQLselect depno

dname

from dept;

sqlL

*dname

sqlA loc

*dname loc

sqlL

select depno

dname loc

*from dept

sql/(执行)

限定查询和排序

select empno ename job deptno

from emp

where deptno= ;

oracle提供 种常用的比较运算符 = = = 或!=(不等于)

除了 种常用的外还提供 种比较运算符 beeen and (包含) IN(和多个值中的任何一个匹配) like (字形匹配)

is null(是空值)

在where子句中的字符串和日期数值必须用单引号引起来 oracle 以内部数值形式存储日期 能表现出世纪 年 月 日 小时 分 秒 默认的日期形式是DD MON YY

sqlselect ename job deptno

from emp

where ename= JAMES ;

sqlselect name job deptno

from emp

where ename= james ;

所有字符检索都是大小写敏感的

显示工资在 和 美元之间的雇员信息

select ename sal

from emp

where sal beeen and ;

显示 年加入公司的雇员相关信息

select ename sal hiredate

from emp

where hiredate beeen JAN and DEC ;

显示mgr等于 的雇员信息

select empno ename sql mgr

from emp

where mgr in ( );

显示姓名为FORD ALLEN雇员的相关信息

select empno ename mgr deptno

from emp

where ename in( FORD ALLEN );

like字形匹配操作可以使用通配符 % (表示任意字符)和 _ (表示一个字符)

select ename

from emp

where ename like S% ;

当我们需要对% _进行查找时 可以使用escape选项 这个选项指定哪个是转义字符

escape标识 \ 字符作为转义符

select ename

from emp

where ename like %A\_B% escape \ ;

在条件中NOT 形成否定条件

select ename job

from emp

where job not in ( CLERK MANAGER ANALYST );

where sal not beeen and

where ename not like %A%

wher m is not null

运算符优先规则

not and or

select ename job sal

from emp

where job= SALESMAN

or job= PRESIDENT

and sal ;

第一个条件是工作为president并且月工资大于 美元

第二个条件是工作为sale *** an

因此可以这样理解 如果一个雇员是president并且月工资大于 或者这个雇员是sale *** an 那么他们将被检索出

select ename job sal

from emp

where (job= SALESMAN

or job= PRESIDENT )

and sal ;

第一个条件是工作为president或saleman

第二个条件是月工资大于

order by子句后可选用关键字asc(升序默认为升序) desc(降序排列)

select ename job deptno hiredate

from emp

lishixinzhi/Article/program/Oracle/201311/17302

oracle数据表数据如何排序,比如按照日期排序

1、首先在oracle建立数据表的时候,对表的命名有以下规范:以字母开头表名长度不能超过30个字符,不能使用oracle保留关键字,可以使用A-Z,a-z,0-9,#,$等。

2、如果表名中包含特殊字符是直接报错的。如下图使用了  *。

3、在建立表的时候,数字也是不能使用表名的开始的。

4、但如果使用双引号对表名进行规范的话,是可以建立以数字或者包含特殊字符的表名的。

5、过这样建立的表名,在查询数据的时候是非常麻烦的,查询时也要加双引号。而且这样建立的表名,在项目运行的过程中也非常容易造成各种麻烦,所以尽量不要使用。

Oracle基本查询过滤排序示例解析

以下是对Oracle中的基本查询过滤排序示例进行了详细的分析介绍 需要的朋友可以参考下  

基本查询

复制代码 代码如下: 查询所有员工的信息 select * from emp; 设置行宽 set linesize ; 设置列宽为四个数字的宽度 col empno for ; 设置列宽 a表示字符串共八位长度 col ename for a 设置pageSize每页显示 条记录 set pagesize ; sql中支持算数表达式 注意 如果一个表达式中含有空值 则整个表达式为空 select empno ename sal sal* m sal* +m from emp; 使用滤空函数如果m为空将以 代替 select empno ename sal sal* m sal* +nvl(m ) from emp; 使用别名的三种方式 别名中有无双引号的区别 带双引号的可以包含空格和特殊字符 不带双引号的则不能 select empno as "员工编号" ename "姓名" sal 月薪 m sal* +nvl(m )年收入 from emp; 关于disctinct 相同记录只取一次 select distinct deptno from emp; 当disctinct跟多个值时 当deptno和job均一样时 才认为是相同记录 select distinct deptno job from emp; 连接符的使用 select ename || 的薪水是 ||sal from emp;

注意 SQL 语言大小写不敏感 SQL 可以写在一行或者多行 关键字不能被缩写也不能分行 各子句一般要分行写 使用缩进提高语句的可读性 过滤和排序

复制代码 代码如下: 查询系统参数 select * from v$nls_parameters; 修改日期格式 alter session set NLS_DATE_FORMAT= yyyy mm dd ; 隐士方式转换日期 会影响性能 select * from emp where hiredate= ; 显示方式转换日期 select * from emp where hiredate=to_date( yyyy mm dd ); 比较运算符 查询工资大于 小于 的员工 beeen and含边界 select * from emp where sal= and sal= ; select * from emp where sal beeen and ; in: 在集合中 查询 号部门和 号部门的员工 select * from emp where deptno= or deptno= ; select * from emp where deptno in ( ); 模糊查询:查询名字以S打头的员工 select * from emp where ename like S% ; 查询名字有四个字的员工 要求四个下划线 select * from emp where ename like ____ ; 查询姓名中含义下划线的员工 _下划线为特殊字符需要转义 escape 声明转义 select * from emp where ename like %\_% escape \ ; 查询奖金不为空的员工 select * from emp where m is not null; 查询员工信息 按照月薪排序 select * from emp order by sal; a命令 追加命令 将上边改为降序排序 a  desc 查询员工信息 按照年薪排序 select empno ename sal sal* from emp order by sal* ; order by后面可以跟别名 select empno ename sal sal* 年薪 from emp order by 年薪; order by后面可以跟序号 select empno ename sal sal* from emp order by ; order by作用于多列 先按照第一列排序 然后按照第二列排 select * from emp order by deptno sal; order by作用于多列 降序需要每列均有desc select * from emp order by deptno desc sal desc 将空值排到最后 select * from emp order by m desc nulls last; 屏蔽/开启反馈信息 set feedback off/set feedback on lishixinzhi/Article/program/Oracle/201311/19117

oracle怎么排序

Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。

1、设置NLS_SORT参数值

SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序 SCHINESE_PINYIN_M 按照拼音排序

2、Session级别的设置,修改ORACLE字段的默认排序方式:

按拼音:alter session set nls_sort = SCHINESE_PINYIN_M;

按笔画:alter session set nls_sort = SCHINESE_STROKE_M;

按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M;

3、语句级别设置排序方式:

按照笔划排序 select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');

按照部首排序 select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');

按照拼音排序 此为系统的默认排序方式

select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');

4、修改系统参数(数据库所在操作系统):

set NLS_SORT=SCHINESE_RADICAL_M export NLS_SORT (sh) setenv NLS_SORT SCHINESE_RADICAL_M (csh) HKLC\SOFTWARE\ORACLE\home0\NLS_SORT (win注册表)


标题名称:oracle查询怎么排序 oracle 查询结果排序
分享网址:http://jkwzsj.com/article/hjsooe.html

其他资讯