gpt4 book ai didi

snowflake-cloud-data-platform - Snowflake - VALUES 子句中的操作 - 无效表达式

转载 作者:行者123 更新时间:2023-12-05 01:14:23 27 4
gpt4 key购买 nike

我们如何在 Snowflake 的 VALUES 子句中获得有理数?

SELECT * FROM ( 
VALUES (1/3.0), (2)
) AS t ;

返回:

SQL compilation error: Invalid expression [1 / 3] in VALUES clause

最佳答案

这太奇特了,可以被定性为错误。
任何产生整数的除法都有效,但分数会触发错误消息。

Documentation指出:
每个表达式都必须是一个常量,或者是一个可以在 SQL 语句编译期间被计算为常量的表达式大多数简单的算术表达式和字符串函数可以在编译时求值,但大多数其他表达式不能。

很明显(1/3)应该是这样一个简单的算术表达式。简单的解决方法当然是计算答案并将其包含为十进制数:

SELECT * FROM (VALUES (0.33333333333333333), (2)) AS T(VAL);

转念一想,这并不像看起来那么简单。如果这些值在 CREATE TABLE AS SELECT 语句中使用,数据类型应该是 NUMBER(7,6) 还是 FLOAT 或其他类型?也许最好在这些情况下具体说明。

除法等细节记录在Scale and Precision in Arithmetic Operations中.

关于snowflake-cloud-data-platform - Snowflake - VALUES 子句中的操作 - 无效表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58647022/

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