解释为什么两个 SQL 命令具有相同的结果

问题描述 投票:0回答:1

我目前正在学习 Oracle 10g 上的 SQL 命令。 我必须编写两个查询,并且由于某种原因两者都有相同的输出。您能否解释一下为什么以下两个查询会产生相同的输出?

SELECT GREATEST (4, 5, 17) FROM DUAL;
SELECT LEAST( '4', '5', '17') FROM DUAL;

两者产生相同的输出:

17

sql database output oracle10g
1个回答
0
投票

在第一个查询中:

SELECT GREATEST (4, 5, 17) FROM DUAL;

传递给

GREATEST()
的三个数字正在进行数字比较,因此17是最大的数字。然而,在第二个查询中:

SELECT LEAST( '4', '5', '17') FROM DUAL;

LEAST()
的三个参数是字符串,因此按字典顺序进行比较。在这种情况下,文本排序为
'17'
'4'
'5'
都“小于”,因为
1
排序在以 2 到 9 开头的字符串之前。

© www.soinside.com 2019 - 2024. All rights reserved.