当前位置:Gxlcms > 数据库问题 > 【书评:Oracle查询优化改写】第二章

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

时间:2021-07-01 10:21:17 帮助过:0人阅读

 

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.  fromto字符串长,那么在from中比to中多出的字符将会被删除,或者认为from中多出的字符在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;

技术分享 

 

 

一.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

人气教程排行