2
我試圖與ORDER BY查詢像這樣的本地SQL主義查詢生成器,CASE當ORDER BY
ORDER BY CASE `promotion` WHEN 0 THEN `net_price`
ELSE `promotion_price`
END DESC, `net_price` DESC
像這樣的事情
$qb->orderBy('CASE `products.promotion` WHEN 0 THEN `products.net_price`
ELSE `products.promotion_price`
END', 'DESC');
$qb->orderBy('products.net_price', 'DESC');
不工作,我會出現意想不到的CASE錯誤。
所以,我想這一點:
$qb->addSelect('CASE products.promotion WHEN 0 THEN products.net_price ELSE products.promotion_price END price');
$qb->orderBy('products.price', 'DESC');
這個時候我得到
'promotion WHEN': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
在這兩種情況下,我試圖把它放在括號中爲我找到了幾個帖子說這幫助,可惜對我來說只是在第一種情況下將錯誤信息更改爲意外)並且
Error: Expected Doctrine\ORM\Query\Lexer::T_FROM, got ')'
第二個。
問題是:是否有可能在ORDER BY中使用條件查詢構建器使用條件?
我正在使用PostgreSQL,我正在嘗試寫出「CASE WHEN」原則的查詢。我是否需要添加支持擴展? – Developer 2016-12-14 11:59:36