gpt4 book ai didi

sql - Postgres 比较字符串与数字返回正确的结果

转载 作者:行者123 更新时间:2023-11-29 12:34:33 30 4
gpt4 key购买 nike

试图了解 postgres 如何将字符串与数字进行比较,因为以下查询返回 true,

SELECT 1 WHERE '1' = 1
SELECT 1 WHERE '1' <= 10
SELECT 1 WHERE '1' BETWEEN 1 and 10
SELECT 1 WHERE 1 BETWEEN '1' and '10'

有人可以解释一下吗?

最佳答案

PostgreSQL 在必要和可能的情况下应用隐式转换。据我所知,没有进一步解释它是如何做到这一点的。 ( https://www.postgresql.org/docs/9.1/typeconv.html )

无论如何,我们可以稍微处理一下您的查询,看看发生了什么:

SELECT '12' BETWEEN 1 and 2 

SELECT '12' BETWEEN '1' and '2' 的结果为 true,SELECT 12 BETWEEN 1 and 2 的结果为 false。运行。它返回 false。

下面是进一步的测试:

SELECT 1 BETWEEN 'A' and '10'

失败并显示 错误:整数类型的输入语法无效:“A”

因此,PostgreSQL 尝试将字符串转换为数字,因为它认为您要在此处处理数字。

关于sql - Postgres 比较字符串与数字返回正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58929012/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com