oracle 11g sql MAX()如何适用于varchar

oracle 11g sql MAX()如何适用于varchar,sql,oracle11g,max,varchar,Sql,Oracle11g,Max,Varchar,我将这些值存储为Varchar: 最大值函数如何确定哪个更大?非常感谢 较高的值由基于排序规则的字母排序确定。L在N之前,因此,NEE-01将是给定数据的最大值,LAH-01将是最小值 如果使用order by某个\u varchar\u列,则应用相同的规则 字符值根据两种度量进行比较: 二进制或语言排序 空白填充或非添加的比较语义 然后再往下走: 在默认的二进制比较中,Oracle根据数据库字符集中字符的数字代码的串联值来比较字符串。如果一个字符的数值大于字符集中的另一个字符,则该字符大于另一

我将这些值存储为Varchar:


最大值函数如何确定哪个更大?非常感谢

较高的值由基于排序规则的字母排序确定。L在N之前,因此,NEE-01将是给定数据的最大值,LAH-01将是最小值

如果使用order by某个\u varchar\u列,则应用相同的规则

字符值根据两种度量进行比较:

二进制或语言排序

空白填充或非添加的比较语义

然后再往下走:

在默认的二进制比较中,Oracle根据数据库字符集中字符的数字代码的串联值来比较字符串。如果一个字符的数值大于字符集中的另一个字符,则该字符大于另一个字符。Oracle认为空格小于任何字符,这在大多数字符集中都是正确的

重点矿山

因此,对于默认的二进制比较,字符的ASCII值将被考虑在内。这也意味着大写字符被视为高于小写字符。

由于字母排序。例如:1。A、 二,。BZ.26 确定更高的值。 如: Maxcol1和Col1:

XABC XYZY

结果: XYZY
XABC

也许会对小写与大写进行评论。非常感谢您的详细回答。我更新了一点我的问题,因为一开始我认为0对我来说是显而易见的,但是我知道的越多,我对任何事情都越不确定:你能检查一下吗?谢谢大家!@user2511599 0作为较小的ASCII值,然后是a,因此它在所有常规字符之前排序
00
0
NEE-01
LAH-01