CrateDB 语句在 AND 比较期间返回意外结果
CrateDB statement returning unexpected results during AND comparison
我有这样的查询
SELECT "deviceId", "transactionStatus"
FROM scp_service_transaction.transactions_v2
WHERE "tenantId" = 'aptos-denim'
AND TRY_CAST("deviceId" AS BIGINT) >= 100
AND TRY_CAST("deviceId" AS BIGINT) <= 150
ORDER BY "endDateTime" desc LIMIT 20 OFFSET 0;
我的数据集是这样的
[
{deviceId: 123, transactionStatus: object },
{deviceId: 1015, transactionStatus: object }
]
我得到的查询 returns 返回值为 123
和 1015
的 deviceId,而我只希望返回 123
。为什么当我指定我希望我的 deviceId 所在的范围时,我的查询返回 123 和 1015?
我假设 deviceId
是一个 TEXT
字段。
CrateDB 4.7.1 / 4.6.8 修复了一个错误,该错误在使用显式转换时应用了交换转换优化。这会导致忽略转换和作为文本进行比较的文本。
两个版本都在测试频道上可用,很可能会在下周内升级为稳定版。
我有这样的查询
SELECT "deviceId", "transactionStatus"
FROM scp_service_transaction.transactions_v2
WHERE "tenantId" = 'aptos-denim'
AND TRY_CAST("deviceId" AS BIGINT) >= 100
AND TRY_CAST("deviceId" AS BIGINT) <= 150
ORDER BY "endDateTime" desc LIMIT 20 OFFSET 0;
我的数据集是这样的
[
{deviceId: 123, transactionStatus: object },
{deviceId: 1015, transactionStatus: object }
]
我得到的查询 returns 返回值为 123
和 1015
的 deviceId,而我只希望返回 123
。为什么当我指定我希望我的 deviceId 所在的范围时,我的查询返回 123 和 1015?
我假设 deviceId
是一个 TEXT
字段。
CrateDB 4.7.1 / 4.6.8 修复了一个错误,该错误在使用显式转换时应用了交换转换优化。这会导致忽略转换和作为文本进行比较的文本。
两个版本都在测试频道上可用,很可能会在下周内升级为稳定版。