首页 > 解决方案 > TypeORM,带有 CAST 和 AS 的 createQueryBuilder,有什么选择吗?

问题描述

我将 TypeORM 与 Nestjs 一起使用,在检查了有关 TypeORMgithub repo的文档后,找不到任何关于我的问题的示例或答案。

我有以下查询:

SELECT * FROM (
    SELECT *, SUM(CAST("amountA" AS DECIMAL)) OVER (ORDER BY CAST("priceA" AS DECIMAL) ASC, id) AS quantity_amount
    FROM public."order"
    WHERE item_a_id= 1
    AND item_b_id = 4
    AND CAST("priceA" AS DECIMAL) <= CAST('92481' AS DECIMAL)
    ORDER BY "priceA" ASC
) AS c
WHERE c.quantity_amount <= CAST('100000' AS DECIMAL);

如您所见,它将某些varchar字段从字符串转换为十进制,因为我正在处理BigNumber并且我没有decimals在实体中使用。

我也有这部分,AS c以后会用到。所以我的问题是:

我可以使用TypeORM 吗?我应该如何从我的子查询createQueryBuilder中传递如下字符串:AND CAST("priceA" AS DECIMAL) <= CAST('92481' AS DECIMAL)andAS c和字段?quantity_amount

还有其他选择吗?因为就目前而言,我正在处理普通SQLquery方法而不是createQueryBuilder.

标签: javascriptnode.jspostgresqlnestjstypeorm

解决方案


推荐阅读