社区
Oracle
帖子详情
请教字符数据中文数字混合时排序问题;
pastime_Wang
2005-10-13 08:51:07
请教各位:
一个field : type varchar2(20);
contents:
漏钢1
漏钢2
漏钢3
漏钢12
排序后,漏钢12 会排到漏钢2的前面,(字符排序逐位比较),如何才能
按照正常的如上的排序方式?
谢谢!!
...全文
234
13
打赏
收藏
请教字符数据中文数字混合时排序问题;
请教各位: 一个field : type varchar2(20); contents: 漏钢1 漏钢2 漏钢3 漏钢12 排序后,漏钢12 会排到漏钢2的前面,(字符排序逐位比较),如何才能 按照正常的如上的排序方式? 谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzwind5
2005-10-13
打赏
举报
回复
又学习了
还有不能对一个字段重复排序
sasacat
2005-10-13
打赏
举报
回复
我的意思就是说,你的方法只能在有限的数据库上用,不能象偶的一样放之四海而皆准
sasacat
2005-10-13
打赏
举报
回复
可是里面如果有字母呢?那就又不对了。所以还是我的办法最好....哈哈哈
zzwind5
2005-10-13
打赏
举报
回复
to傻傻猫
SQL> select lengthb('就是汉字的个数333') from dual;
LENGTHB('就是汉字的个数333')
----------------------------
17
SQL> select length('就是汉字的个数333') from dual;
LENGTH('就是汉字的个数333')
---------------------------
10
要看用什么字符集的 你的是一个汉字占3个字节,我的是占两个
sasacat
2005-10-13
打赏
举报
回复
要这样倒是可以
select to_number(substr('就是汉字的个数333', (lengthb('就是汉字的个数333')-length('就是汉字的个数333'))/2+1)) from dual
zzwind5
2005-10-13
打赏
举报
回复
上面写错了
select field from
(
select t.*, rank() over(order by substr(field, 1, lengthb(field)-length(field))) b
from table_name t)
order by b, to_number(substr(field, lengthb(field)-length(field)+1));
sasacat
2005-10-13
打赏
举报
回复
zzwind5()你说得不对吧
select lengthb('就是汉字的个数333') from dual
LENGTHB('就是汉字的个数333')
----------------------------
24
1 row selected
select length('就是汉字的个数333') from dual
LENGTH('就是汉字的个数333')
---------------------------
10
1 row selected
sasacat
2005-10-13
打赏
举报
回复
order by translate(field,'1234567890',' $'),TO_NUMBER(replace(field,translate(field,'1234567890',' $')))
bobfang
2005-10-13
打赏
举报
回复
如果要排序的字段都是只有末尾有若干位数字,那么可以自己写个函数,输入是这个字符串,返回值是将末尾的数字都变为等长的数字串(长度就取最大可能的数字串的长度为,不足补0)。例如最长的数字串长度不会超过5位,那么输入"漏钢1",返回"漏钢00001",输入"漏钢12","漏钢00012"。这样,order by这个函数就可以了。
zzwind5
2005-10-13
打赏
举报
回复
汉字个数不定时
lengthb(field)-length(field) 就是汉字的个数
order by field, to_number(substr(field, lengthb(field)-length(field)+1))
zzwind5
2005-10-13
打赏
举报
回复
order by field, to_number(substr(field, 3))
匆匆岁月
2005-10-13
打赏
举报
回复
这里面的汉字个数如果有可能是三个,四个或其他个数呢?
hevin
2005-10-13
打赏
举报
回复
order by to_number(substr(fieldName,5,length(fieldName) - 4) )
java
中文数字
排序
_java – 逻辑
排序
大写字母和数字的
混合
字符
串
我有一串大写字母和数字,我必须’逻辑’
排序
并存储在
数据
库的字段中.我已经将
数据
库中的更新/更改/查询部分弄清楚了.我很难对这个
字符
串进行逻辑
排序
.在这里,我希望我能够很好地解释这一点.鉴于这组
字符
串AB1AB2AB3A11AB10我需要这些像这样的alpha
排序
A11AB1AB2AB3AB10为了实现这一点,我相信我需要爆炸
字符
串.因为目前尝试alpha分类产生A11 AB1 AB10 AB2 A...
SQl
排序
(字段里面包含
字符
,数字,以及英文)
select [字段] from [表名] order by LEN([字段]), [字段]
汉字和数字
混合
排序
实现汉字和数字
混合
排序
的功能,但在网上找了好久,yo
js
混合
排序
(同
时
存在数字、字母、汉字等)
若同
时
存在数字、字母、汉字等
混合
数据
,默认的
排序
规则往往无法满足需求,具体的
排序
算法也需根据需求进行修改。
排序
需求描述 【数字】按数值大小
排序
【数字】在【
字符
串】前面 【非全汉字的
字符
串】在【全为汉字的
字符
串】的前面 【非全为汉字的
字符
串】从左到右依次比较
字符
,非汉字
字符
按Unicode 编码值
排序
,汉字按拼音首字母
排序
,汉字
字符
在非汉字
字符
的后面 【全为汉字的
字符
串】按拼音首字母
排序
范例: // 原数组 let arr = ['王五', '9', 'a李四', 'abca', '
中英文数字
混合
字符
串
排序
js
一、思路 两两比较,根据优先级交换位置。比较的
时
候,一个
字符
一个
字符
的比较。
字符
比较
时
,首先判断
字符
类型(特殊
字符
,数字,字母,汉字类型),对不同类型进行0-3标记,然后确定单
字符
优先级,特殊
字符
>数字>英文字母>汉字,英文字母根据Unicode码
排序
,汉字根据拼音
排序
同
时
字符
串长度长的优先级低 二、 要
排序
的
数据
data:[{'name':'分组2'},{'name':'分组45'},{'name':'分组4'},{'name':'fusa'},{'name':'4647'},]
Oracle
17,134
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章