在 PostgreSQL 的嵌入式 SQL 中将两个主机变量相乘
Multiply two host variables in embedded SQL for PostgreSQL
我在 PostgreSQL 的嵌入式 SQL 中将两个主变量相乘时遇到问题。
SQL-查询很大,但我已经删除了不起作用的部分。
声明:
EXEC SQL BEGIN DECLARE SECTION;
int var1;
int var2;
EXEC SQL END DECLARE SECTION;
代码:
CASE WHEN product_id = :var1 THEN :var1 * :var2
ELSE 0 END
编译成功,但我在执行时收到以下错误消息:
Errcode: -400
Errmsg: operator is not unique: unknown * unknown on line 1394
如果我将代码更改为
CASE WHEN product_id = :var1 THEN 1 * :var2
ELSE 0 END
或
CASE WHEN product_id = :var1 THEN product_id * :var2
ELSE 0 END
或
CASE WHEN product_id = :var1 THEN :var1 * (1 * :var2)
ELSE 0 END
有效。
是否可以将两个主变量相乘?如果没有,是否有任何解决方法?上面的最后一个代码示例有效,但我想要一个不那么丑陋的解决方案。
尝试转换为整数:
CASE WHEN product_id = :var1 THEN :var1::integer * :var2::integer
ELSE 0 END
错误
operator is not unique...
大部分可以通过转换为预期类型来修复
我在 PostgreSQL 的嵌入式 SQL 中将两个主变量相乘时遇到问题。 SQL-查询很大,但我已经删除了不起作用的部分。
声明:
EXEC SQL BEGIN DECLARE SECTION;
int var1;
int var2;
EXEC SQL END DECLARE SECTION;
代码:
CASE WHEN product_id = :var1 THEN :var1 * :var2
ELSE 0 END
编译成功,但我在执行时收到以下错误消息:
Errcode: -400
Errmsg: operator is not unique: unknown * unknown on line 1394
如果我将代码更改为
CASE WHEN product_id = :var1 THEN 1 * :var2
ELSE 0 END
或
CASE WHEN product_id = :var1 THEN product_id * :var2
ELSE 0 END
或
CASE WHEN product_id = :var1 THEN :var1 * (1 * :var2)
ELSE 0 END
有效。
是否可以将两个主变量相乘?如果没有,是否有任何解决方法?上面的最后一个代码示例有效,但我想要一个不那么丑陋的解决方案。
尝试转换为整数:
CASE WHEN product_id = :var1 THEN :var1::integer * :var2::integer
ELSE 0 END
错误
operator is not unique...
大部分可以通过转换为预期类型来修复