Oracle中max函数问题。

somnusma 2011-03-16 03:10:47
数据列如下:

CODE
-------------------
ffff
CS
CS
CS
fffff
CS
[B@900243


如果select max(CODE) from xxxx ---------------->结果:fffff
如果select min(CODE) from xxxx ---------------->结果:CS

问:max和min是如何进行比对然后判断大小的。
...全文
5044 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jaypippo 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 meng0819 的回复:]

一般而言字符串只比较第一个字母,max就是第一个字母最大的,
不过如果如下所示:
ab
ac
ad
这个比较的结果就不清楚了。。。。
[/Quote]如果第一个字母相同的话 会从第二个开始比较,以此类推
numberforever 2011-03-28
  • 打赏
  • 举报
回复
根据ASCII码比较大小
迷失的空间 2011-03-26
  • 打赏
  • 举报
回复
一般而言字符串只比较第一个字母,max就是第一个字母最大的,
不过如果如下所示:
ab
ac
ad
这个比较的结果就不清楚了。。。。
liuyyuns 2011-03-26
  • 打赏
  • 举报
回复
对,就是按照字符的ASCII逐个的进行比较。
304的的哥 2011-03-22
  • 打赏
  • 举报
回复

SQL> with t as(
2 select 'ffff' code from dual union all
3 select 'cs' from dual union all
4 select 'cs' from dual union all
5 select 'cs' from dual union all
6 select 'ffff' from dual union all
7 select 'cs' from dual
8 )
9 select max(code) from t;
/*
MAX(CODE)
---------
ffff
*/
SQL> with t as(
2 select 'ffff' code from dual union all
3 select 'cs' from dual union all
4 select 'cs' from dual union all
5 select 'cs' from dual union all
6 select 'ffff' from dual union all
7 select 'cs' from dual
8 )
9 select min(code) from t;
/*
MIN(CODE)
---------
cs
*/
SQL> select ascii('f'),ascii('c') from dual;
/*
ASCII('F') ASCII('C')
---------- ----------
102 99
*/
--102>99,所以max(code)返回'ffff',min(code)返回'cs'
fangxiaoke 2011-03-17
  • 打赏
  • 举报
回复
SELECT ASCII('f'),ASCII('C') FROM dual;
102 67
唐诗三百首 2011-03-17
  • 打赏
  • 举报
回复
不好意思, 2楼回复的函数有误,
正确是ASCII()
  • 打赏
  • 举报
回复
按照字符的ascii码 一位一位的进行比较
通过ascii()函数可以查看字符的ascii码
select ascii('C') from dual;
唐诗三百首 2011-03-16
  • 打赏
  • 举报
回复
依据ASC码比较大小.
小写字母的ASC码大于大小字母的ASC码.

select ASC('A'),ASC('a') from dual;
ASC('A') --> 65
ASC('a') --> 97
秋雨飘落 2011-03-16
  • 打赏
  • 举报
回复
二进制编码

3,492

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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