无法将 SELECT MAX CASE 与学说一起使用
Unable to use SELECT MAX CASE with doctrine
我正在尝试使用 max(case...) 创建 DQL 请求
我正在使用 PostgreSQL
这是一个 table 示例:(键值是随机的)
[------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 都是正确的。
你能帮我吗?非常感谢你们!
解决方案是在 case when 子句中添加 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')
祝你有愉快的一天
我正在尝试使用 max(case...) 创建 DQL 请求 我正在使用 PostgreSQL
这是一个 table 示例:(键值是随机的)
[------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 都是正确的。 你能帮我吗?非常感谢你们!
解决方案是在 case when 子句中添加 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')
祝你有愉快的一天