0

Sql操作:

    SELECT *,
        CASE
            WHEN quota_unit = 'MB' THEN quota*1024
            ELSE quota
        END AS data_usage
    FROM mapping
    ORDER BY data_usage;

我试过这样

query = mapping.select('CASE WHEN mapping.quota_unit = 'MB' THEN 1024 * mapping.quota ELSE mapping.quota END AS data_usage)
query.orderBy(data_usage)
res = list(query)

但是选择方法在 Where 子句的大括号中采用该值,结果查询变为

SELECT * FROM mapping WHERE 'CASE WHEN mapping.quota_unit = MB THEN 1024 * mapping.quota ELSE mapping.quota END AS data_usage'

这是意料之中的。你能在这儿取悦我吗?

4

1 回答 1

0

并非每个可能的 SQL 查询都可以映射回 SQLObject 表达式。有时您需要深入SQLBuilder甚至原始查询:

results = connection.queryAll(string)
于 2020-12-31T08:09:13.863 回答