社区
Oracle
帖子详情
请教字符数据中文数字混合时排序问题;
pastime_Wang
2005-10-13 08:51:07
请教各位:
一个field : type varchar2(20);
contents:
漏钢1
漏钢2
漏钢3
漏钢12
排序后,漏钢12 会排到漏钢2的前面,(字符排序逐位比较),如何才能
按照正常的如上的排序方式?
谢谢!!
...全文
232
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 – 逻辑
排序
大写字母和数字的
混合
字符
串
探讨了一种特殊的
字符
串
排序
方法,该方法适用于由大写字母和数字组成的特定格式的
字符
串。目标是对
字符
串进行逻辑
排序
,以便正确地按字母和数字顺序排列。文章详细讨论了
排序
过程中的难点,并提供了一个初步的代码实现。
SQl
排序
(字段里面包含
字符
,数字,以及英文)
本文介绍几种使用SQL进行中文及数字
排序
的方法。包括通用
排序
、仅含
中文数字
的列
排序
及含
中文数字
混合
内容的列
排序
。通过不同场景下的SQL语句实现,帮助读者掌握SQL
排序
技巧。
汉字和数字
混合
排序
本文介绍了一种实现汉字与数字
混合
排序
的方法,通过将
字符
串中的数字转换为指定长度的数字串,再按照汉字首字母
排序
并组合回完整的
字符
串。具体步骤包括:1) 创建HanziComparator类用于按汉字首字母
排序
;2) UserInfo类作为
排序
实体;3) SortUtil类负责数字转换和
排序
逻辑;4) Main类整合所有组件并输出
排序
结果。
js
混合
排序
(同
时
存在数字、字母、汉字等)
这篇博客介绍了如何处理包含数字、字母和汉字的
混合
数据
排序
,提出了一个具体的
排序
算法,确保数字在前,全汉字在后,非全汉字
字符
串按Unicode编码值
排序
。此外,还探讨了多音字处理,使用了《现代汉语词典》的拼音首字母
数据
来确定汉字的拼音,并展示了完整的JavaScript代码实现。
中英文数字
混合
字符
串
排序
js
本文介绍了一种
字符
串
排序
算法,通过两两比较,根据
字符
类型和Unicode编码规则决定优先级。特殊
字符
>数字>英文字母>汉字,并考虑
字符
串长度。适用于分组名称的高效
排序
。
Oracle
17,135
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章