簡體   English   中英

如何在 python sqlobject 中使用 Table.select() 方法執行以下 sql 操作?

[英]How to do following sql operation using Table.select() method in python sqlobject?

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)

但是 select 方法在 Where 子句和結果查詢的大括號中采用該值變為

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

這不是預期的。 你能在這里取悅我嗎?

並非每個可能的 SQL 查詢都可以映射回 SQLObject 表達式。 有時你需要 go 到SQLBuilder甚至原始查詢:

results = connection.queryAll(string)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM