首页 > 解决方案 > OrderBy 不适用于学说 symfony2 中的别名

问题描述

我需要的

我需要排序别名。

symfony 代码

$qb->addSelect("(CASE WHEN  (priority LIKE  '%High%') THEN 1
       WHEN  (priority LIKE '%Medium%') THEN 2

       ELSE 3 END) AS  prioritys ");

排序代码

       priority  column name of view/table.

       prioritys  is alias.

      $qb->orderBy('priority','ASC');   //works because here im accessing column from table/view.

      $qb->orderBy('prioritys','ASC');   //doesnot works.

使用别名时出错

错误:[语义错误] 第 0 行,第 173 列,靠近“优先级 ASC”:错误:“优先级”未定义。

任何建议都是最受欢迎的。

标签: phporaclecasesymfony-2.8

解决方案


$qb->orderBy('prioritys','ASC');   // it should work, check symfony2 doc.

根据主要数据库,我们可以在 order by 子句中使用列别名。所以检查你的前端。

如果不支持,则按子句顺序使用 CASE 表达式,如下所示

ORDER BY CASE WHEN priority LIKE '%High%' THEN 1 WHEN priority LIKE '%Medium%' THEN 2 ELSE 3 END

推荐阅读