//by deptno SQL> select * from v_tt 2 order by replace(data,replace(translate(data,'0123456789','##########'),'#' ,''),''); --------------------------------------------------- CLARK 10 KING 10 MILLER 10 JONES 20 FORD 20 ADAMS 20 SMITH 20 SCOTT 20 WARD 30 TURNER 30 ALLEN 30 --------------------------------------------------- JAMES 30 BLAKE 30 MARTIN 30 14 rows selected. //by name SQL> select * from v_tt

北京 SQL 语言共分为四大类: 数据 查询语言DQL, 数据 操纵语言DML, 数据 定义语言DDL, 数据 控制语言DCL。其中用于定义 数据 的结构,比如创建、修改或者删除 数据 库;DCL用于定义 数据 库用户的权限;在这篇文章中我将详细讲述这两种语言在 Oracle 中的使用方法。  DML语言  DML是 SQL 的一个子集,主要用于修改 数据 ,下表列出了 ORACLE 支持的DML语句。语句用途INSERT向表中添加行UPDATE更新存储在表中的 数据 DELETE删除行SELECTFORUPDATE禁止其他用户访问DML语句正在处理的行。LOCKTABLE禁止其他用户在表中使用DML语句  插入 数据 这是存入 数据 库的 数据 String [] str = new String[]{"info1","info10","info2","info3","info4","info5-5","info6-4","info7-4"}; 这是 SQL 语句 select * from talbe order by to_number(translate( 排序 的字段, '0123456789' ||... 思路一:将 字母 转成ASCII码值进行 排序 (最开始想到的这个思路,但该方法待优化!!!) ORDER BY CASE WHEN ASCII(字段) < 58 THEN TO_NUMBER(字段) ELSE ASCII(字段) END [0-9]的ASCII码值为[48-57] [A-Z]的ASCII码值为[65-90] [a-z]的ASCII码值为[97-122] 这里直接判断小于58就认为是 数字 数字 时取数值, 数字 大于65时就会和 字母 冲突,当前业务中 数字 最大为20(无 待 排序 数据 :是一个名字为v的视图 按 字母 数字 分割查询: SQL 如下:select data,replace(data,replace(translate(data,'0123456789','##########'),'#',''),'') deptno,replace(translate(data,'0123456789','##########'),'#','') enamefrom vst... 在工作中遇到一个问题,当时不会解决,了解translate函数后(语法translate('char','from_string','to_string'),char原始列,将from_string替换为to_string,且为一个字符一个字符的替换,且to_string不为空),进行试验验证最终明白了,以下是做的验证SELECT ename || ' ' || empno  AS data FR... SQL > create view v_tt2 as3 select ename||' '||deptno as data4 from emp;View created. SQL > select * from v_tt;DATA---------------------------------------------------SMITH 20ALLEN 30WARD 30JONES... http://blog.csdn.net/p451933505/article/details/9272257对 Oracle 中中文、 数字 、英文混杂形式的字段进行 排序 的方法:例如:orderbyNLSSORT(字段名,'NLS_SORT=SCHINESE_PINYIN_M'),to_number(translate(字段名,'0123456789'||字段名,'0123456789... 在做项目中,我们经常遇到一些对中文及英文 混合 排序 的问题,有时束手无策,经过查询,发现了 oracle 数据 库中对汉字跟英文 字母 进行 混合 排序 SQL ,来一起看看怎么实现: user_info表中 字段 username 里存的即有中文也有英文,如何按照 字母 顺序进行 排序 : 看下面 sql 语句: select * from user_info order by nlssort(translate(lower( substr(username,0,1)), 'abcdefghijk... 问题是随着需求的变化逐步发现并解决的,之前写过 oracle 中对 数字 加汉字的 排序 以及REGEXP_SUBSTR介绍和 Oracle 中对 数字 加汉字的 排序 (完善), 这次 数据 又不一样了 第一次是 数字 在前汉字在后且 数字 没有重复,如下 第二次是 数字 有重复,且 数字 前后内容相同,如下 这次和第二次唯一不同的是 数字 后面内容是不同的,如下: 第一种 排序 : SELECT * FROM test2 order by... (1)使用translate,replace方法 select qb.box_code from qc_box qb where qb.type_id = '402888e53d429ff5013d42ce99f4002f'  ORDER BY   REPLACE(TRANSLATE(qb.box_code,'0123456789', '##########'), '#', '')|| create view V as select ename || ||deptno as data from emp;select data from V order by replace(data,replace( translate(data,0123456789,##########),#,