请问如何比较字符串(是中文)的大小

xmqy110 2004-04-26 11:40:25
表里有个MONTH字段,值为一月,二月,...十二月,怎样比较大小,按月份来排序
...全文
43 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
flymoon 2004-05-03
  • 打赏
  • 举报
回复
SQL> select *from tab_month order by decode(a,'四月',4,'一月',1,'二月',2,12);

A
------------------------------
一月
二月
四月
十二月

xmqy110 2004-05-02
  • 打赏
  • 举报
回复
up
iamcarlos 2004-04-30
  • 打赏
  • 举报
回复
SQL> select *from tab_month;

A
------------------------------
一月
二月
十二月
四月


SQL> select *from tab_month order by decode(a,'四月',4,'一月',1,'二月',2,12);

A
------------------------------
一月
二月
四月
十二月


参考datafrog(frog)的。楼主可以参考一下不知道是否可行
wupangzi 2004-04-30
  • 打赏
  • 举报
回复
MONTH字段是什么类型?
如果是date类型,那简单,如果是字符串,datafrog(frog)的方法未必不可!
dinya2004 2004-04-30
  • 打赏
  • 举报
回复
不用这么复杂吧?!
datafrog 2004-04-29
  • 打赏
  • 举报
回复
你可以decode一下,把月份转为数字,不过要进行嵌套,有点麻烦: decode(month,'一月','A',decode(month,'二月','B',decode(......))) serial_no,month 你就可以按照serial_no来进行排序了.
Petergepeter 2004-04-29
  • 打赏
  • 举报
回复
最好是建立一张MAPPING的表,从表里找出大小来。
ern 2004-04-28
  • 打赏
  • 举报
回复
按月份来排序比较麻烦,to_date('一月',mon)再比较,不知道行不行
楼上那样的作法是有问题的,比如十二月怎么处理?
dinya2003() 的方法和直接比较有什么区别?
superlcj 2004-04-27
  • 打赏
  • 举报
回复
select to_number(rtrim(month,'月')) from dual;
dinya2003 2004-04-27
  • 打赏
  • 举报
回复
select ascii('三月')-ascii('一月') from dual .
转换成ascii码然后计算.
xmqy110 2004-04-26
  • 打赏
  • 举报
回复
没人知道吗

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧