小编典典

oracle中字符串比较的问题

sql

我正在阅读oracle的基础知识,并遇到了奇怪的陈述。我不知道这是真的。

声明说

“字符串值‘2’大于字符串值‘100’。字符‘1’小于字符‘10’。”

请就上述话题发表一些看法。我了解必须使用ASCII值进行内部比较。我正在寻求一些合理的解释。


阅读 157

收藏
2021-04-28

共1个答案

小编典典

这意味着被视为字符串的数字不是按 数字顺序 而是按 词汇顺序排序 ,这与字典中单词的排序方式相同。即,从左侧一次比较一个字符。

在您的第一个示例中,“ 2”大于“ 100”,因为将“ 2”与“ 1”进行比较并发现更大。将此与字典中“ C”和“ BAA”的顺序进行比较。

在您的第二个示例中,“ 1”小于“ 10”,因为“ 1”与“ 10”左侧的“ 1”完全匹配,但是“
10”在匹配之后有字符。因此,它更大。同样,将其与字典中“ B”和“ BA”的顺序进行比较。

2021-04-28