当前位置:首页 > 数据库 > Oracle

【书评:Oracle查询优化改写】第二章

 

BLOG文档结构图

【书评:Oracle查询优化改写】第二章 - 文章图片 

 

在上一篇中http://blog.itpub.net/26736162/viewspace-1652985/我们主要分析了一些单表查询的时候需要注意的内容,今天第二章也很简单,主要是关于排序方面的内容,以下贴出第二章的内容:

第 2 章 给查询结果排序

2.1 以指定的次序返回查询结果

2.2 按多个字段排序

2.3 按子串排序

2.4 TRANSLATE

2.5 按数字和字母混合字符串中的字母排序

2.6 处理排序空值

2.7 根据条件取不同列中的值来排序

 

 

排序基本上没有什么可以讲的,不过书中着重介绍了下<font style="face: "Times" roman? new>translate的用法。

 

一.1  translate用法

语法:<font style="face: "Times" roman? new>TRANSLATE(char, from, to)

 

用法:

1. 返回将出现在<font style="face: "Times" roman? new>from中的每个字符替换为<font style="face: "Times" roman? new>to中的相应字符以后的字符串。

2.  <font style="face: "Times" roman? new>from<font style="face: "Times" roman? new>to字符串长,那么在<font style="face: "Times" roman? new>from中比<font style="face: "Times" roman? new>to中多出的字符将会被删除,或者认为<font style="face: "Times" roman? new>from中多出的字符在<font style="face: "Times" roman? new>to中与空对应

3.   三个参数中有一个是空,返回值也将是空值。

 

 

09:43:50 SQL>  select translate(‘abcdefga‘,‘abc‘,‘wo‘)  from dual;

 

TRANSLA

-------

wodefgw

 

Elapsed: 00:00:00.14

09:43:57 SQL>  select translate(‘abcdefga‘,‘abc‘,‘‘)  from dual;

 

T

-

 

 

Elapsed: 00:00:00.00

 

 

 

SELECT translate(‘ab 你好 bcadefg‘,‘abcdefg‘,‘1234567‘),translate(‘ab 你好 bcadefg‘,‘1abcdefg‘,‘1‘) FROM dual;

【书评:Oracle查询优化改写】第二章 - 文章图片 

 

 

一.2  按数字和字母混合字符串中的字母排序,采用translate函数来实现

 

09:52:01 SQL> create or replace view v as select empno || ‘ ‘||ename as data from scott.emp;

 

View created.

 

Elapsed: 00:00:00.54

09:52:07 SQL> select * from V

09:52:15   2  ;

 

DATA

---------------------------------------------------

9000 lastwiner

9001 lastwiner

7369 SMITH

7499 ALLEN

7521 WARD

7566 JONES

7654 MARTIN

7698 BLAKE

7782 CLARK

7788 SCOTT

7839 KING

7844 TURNER

7876 ADAMS

7900 JAMES

7902 FORD

7934 MILLER

 

16 rows selected.

 

Elapsed: 00:00:00.20

 

09:55:07 SQL> select data,translate(data,‘- 0123456789‘,‘-‘) from V order by 2;

 

DATA                                                TRANSLATE(DATA,‘-0123456789‘,‘-‘)

--------------------------------------------------- ------------------------------------------------------------------------------------------------------

7876 ADAMS                                          ADAMS

7499 ALLEN                                          ALLEN

7698 BLAKE                                          BLAKE

7782 CLARK                                          CLARK

7902 FORD                                           FORD

7900 JAMES                                          JAMES

7566 JONES                                          JONES

7839 KING                                           KING

7654 MARTIN                                         MARTIN

7934 MILLER                                         MILLER

7788 SCOTT                                          SCOTT

7369 SMITH                       &nb 本文系统来源:http://www.cnblogs.com/lhrbest/p/4503325.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐