oracle 表中如何对按含有字母和数字的编号来进行排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 表中如何对按含有字母和数字的编号来进行排序相关的知识,希望对你有一定的参考价值。
我的编号(关键字)是PRO+数字的形式。我设置了按这个编号来进行升序排序,可就是没有完全按这个编号中的数字部分的升序来进行排序。如图!求解!
排序的话,用order by来处理即可。
比如:
col
a123
a234
b999
b335
select * from tablename order by col;结果就是
col
a123
a234
b335
b999
如果按倒序排列:
select * from tablename order by col desc;结果就是
col
b999
b335
a234
a123
参考技术A 直接order by pro_d 是按字符串排序的,不能得到按数字大小的排序效果;应该去掉前边的字符然后再排序: order by to_number(substr(pro_d, 4))本回答被提问者采纳 参考技术B 因为编号是按字符串类型存储的,排序时也是按照字符串比较来排序的,如果想按数字排序,必须先获取后面的数字并转换成整形再比较排序,order by to_number(substr(pro_d, 4)) 参考技术C 按照了 PR01,PR010; PR02, PR020;只不过不是你要的效果
如果你的数据是PR01,PR02,PR03,PR04.....这样的效果应该是你要的
这个是数据本身的问题 参考技术D 在数据库中自定义函数随机生成字符串,然后更新数据库。
update 表 set 字段=dbo.gen_key() where 主键字段='值'
C语言从键盘输入一个含有英文字母,英文符号,数字的字符串,如何过滤其中的字母??
参考技术A#include <stdio.h>
#include <string.h>
int main()
char str[111];
int k=0;
gets(str);
for(int i=0;i<strlen(str);i++)
if(!(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z'))
str[k++]=str[i];//非字母字符保留,字母字符删除;
str[k]='\\0';//新字符串加个结束符
puts(str);
return 0;
以上是关于oracle 表中如何对按含有字母和数字的编号来进行排序的主要内容,如果未能解决你的问题,请参考以下文章
Oracle数据库操作时如何使用LOWER()UPPER()函数
如何查出在oracle 表中的某个字段中符合以下要求:包括除汉字、数字、字母、中画线、括弧外的其它字符
Oracle数据库操作时如何使用LOWER()、UPPER()函数