我尝试使用max创建DQL请求(案例...) 我正在使用PostgreSQL
这里有一个表例子:(键值是随机的)
[------TABLE------]
[TYPE |KEY|VALUE ]
[SWEET|843|WAFFLE ]
[SWEET|258|NUTELLA]
这就是我想要的:
[TYPE |DESSERT|SAUCE ]
[SWEET|GAUFRE |NUTELLA]
这就是我正在完成的(工作)SQL:
select
type,
max(case when key=843 then valeur end) as dessert,
max(case when key=258 then valeur end) as sauce
from
TABLE
group by type
但是,我无法将此SQL查询转换为DQL,这是我绑定的(不工作):
$qb = $this->createQueryBuilder('table')
->select('table.type')
->addSelect('max(case when table.key=843 then table.value end) as dessert')
->addSelect('max(case when table.key=258 then table.value end) as sauce')
->addGroupBy('table.type')
这是我的错误:
[Syntax Error] Error: Unexpected ')'
我尝试使用和不使用max,并且生成的DQL是正确的。 你能帮我吗?非常感谢你们!
答案 0 :(得分:0)
解决方案是在子句:
的情况下添加ELSE$qb = $this->createQueryBuilder('table')
->select('table.type')
->addSelect('max(case when table.key=843 then table.value else null end) as dessert')
->addSelect('max(case when table.key=258 then table.value else null end) as sauce')
->addGroupBy('table.type')
度过愉快的一天