为何Oracle 10g中两条SQL语句输出结果一致?
Oracle 10g中两条SQL语句均返回17的原因解释
1. SELECT GREATEST (4, 5, 17) FROM DUAL;
GREATEST函数的作用是从传入参数中返回最大值,这里传入的4、5、17都是数值类型,三者里最大的数值就是17,因此该语句返回17。
2. SELECT LEAST( '4', '5', '17') FROM DUAL;
LEAST函数用于返回传入参数中的最小值,但这里的参数是字符串类型。Oracle对字符串的比较遵循逐字符按ASCII码值对比的规则:
- 先对比第一个字符:'4'的ASCII码是52,'5'是53,'1'是49,其中'1'的ASCII码最小。
- 由于第一个字符已经判定出'17'的优先级更低,后续字符无需继续对比,因此
LEAST函数返回'17',显示结果为17。
内容的提问来源于stack exchange,提问作者Rose
相关产品推荐
相关产品推荐

