Oracle的varchar2如何比较大小

Posted 疯子兰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle的varchar2如何比较大小相关的知识,希望对你有一定的参考价值。

首先要说的是Oracle中字符类型的比较都是基于ASCII码表来实现的,我就简单做个总结。

Oracle中varchar2类型的字符串使用的是非填充空格的标准来进行比较的(表格中右边的那列,注意空格的情况)。

Blank-Padded 

Nonpadded
‘ac‘ > ‘ab‘  ‘ac‘ > ‘ab‘
‘ab‘ > ‘a  ‘  ‘ab‘ > ‘a   ‘
‘ab‘ > ‘a‘  ‘ab‘ > ‘a‘
‘ab‘ = ‘ab‘  ‘ab‘ = ‘ab‘
‘a ‘ = ‘a‘  ‘a ‘ > ‘a‘

 

 

 

 

 

 

 

 

在比较时(类型一致的前提下),如果长度一致,会先比较第一个字符的在ASCII码中的大小,大的那个则整个字符串大于小的那个字符串,否则就比较下一个字符,方法同此;

如果长度不一致,比较方法同上,只是存在值的字符位的值大于不存在值的,存在空格的也是把另一个字符串对应字符位的值和ASCII码中空格的值进行比较。

存在错误欢迎指正,谢谢!

参考资料(对另外的字符类型也有说明):

https://blog.csdn.net/rockpk008/article/details/41087679

https://blog.csdn.net/xiadingling/article/details/82115860

 

以上是关于Oracle的varchar2如何比较大小的主要内容,如果未能解决你的问题,请参考以下文章

在SQL语句中怎样对varchar型别的列进行数值大小的比较

如何在oracle数据库中获取varchar2的声明大小

Oracle中VARCHAR2的大小声明为1字节是啥意思?

新手小白,在oracle中varchar2类型,能设置最大值吗

Oracle 中 varchar2 PL/SQL 子程序参数的大小限制是多少?

CDateTimeCtrl类型的日期如何比较大小