好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

 

BLOG文档结构图

 

 

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

第 2 章 给查询结果排序

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

2.2 按多个字段排序

2.3 按子串排序

2.4 TRANSLATE

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

2.6 处理排序空值

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

 

 

排序基本上没有什么可以讲的,不过书中着重介绍了下 translate 的用法。

 

一.1   translate 用法

语法: TRANSLATE(char, from, to)

 

用法:

1.   返回将出现在 from 中的每个字符替换为 to 中的相应字符以后的字符串。

2.     若 from 比 to 字符串长,那么在 from 中比 to 中多出的字符将会被删除,或者认为 from 中多出的字符在 to 中与空对应

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

 

 

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

 

TRANSLA

-------

wodefgw

 

Elapsed: 0.14

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

 

T

-

 

 

Elapsed: 0.00

 

 

 

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

 

 

 

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

 

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

 

View created.

 

Elapsed: 0.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: 0.20

 

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

 

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

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

7876 ADAMS                                          A DAMS

7499 ALLEN                                          A LLEN

7698 BLAKE                                          B LAKE

7782 CLARK                                          C LARK

7902 FORD                                           F ORD

7900 JAMES                                          J AMES

7566 JONES                                          J ONES

7839 KING                                           K ING

7654 MARTIN                                         M ARTIN

7934 MILLER                                         M ILLER

7788 SCOTT                                          S COTT

7369 SMITH                       &nb

查看更多关于【书评:Oracle查询优化改写】第二章的详细内容...

  阅读:27次