sql - oracle中字符串比较的问题

标签 sql oracle

我正在阅读 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/

相关文章:

mysql:按用户获取上次对话记录

javascript - Oracle Jet 不显示来自 Web 服务的数据

java - 字符串新行(尝试将 java 连接到 Oracle DB)

database - 如何更改oracle数据库进程的当前trace文件

database - Node.js + Oracle - 在每次请求后保持连接打开还是关闭?

sql - Postgres 查询中的语法错误

mysql - PHPMyAdmin 中的 SQL 查询未执行,显示错误 #1071

c# - .Net 访问超大型数据库的最佳方法是什么?

python - SQLAlchemy 获取最大值

sql - 在 postgres 中使用函数时出现语法错误