//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,##########),#,