我正在阅读 oracle 的基础知识并遇到了奇怪的语句。我不知道它有多真实。
声明说
" String value '2' is greater than String value '100'. Character '1' is less than Character '10'. "
请就上述主题发表一些看法。我知道内部比较必须使用 ASCII 值进行。我正在寻求一些合理的解释。
最佳答案
这意味着被视为字符串的数字不是按数字顺序而是按词汇顺序排序的,这与单词在字典中的排序方式相同。即,从左侧开始逐个比较字符。
在您的第一个示例中,“2”大于“100”,因为将“2”与“1”进行比较并发现它更大。将此与字典中“C”和“BAA”的顺序进行比较。
在您的第二个示例中,“1”小于“10”,因为“1”完全匹配“10”左侧的“1”,但“10”后面有字符。因此它更大。再次将此与字典中“B”和“BA”的顺序进行比较。
关于sql - oracle中字符串比较的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11355934/