时间: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的用法。
语法: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: 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;
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