postgresql 如何在mikro-orm查询生成器中添加CASE表达式?

2ledvvac  于 2023-03-01  发布在  PostgreSQL
关注(0)|答案(1)|浏览(122)

我需要翻译这个句子

SELECT "si".*, 
       (CASE 
          WHEN sip_mapping.sip_identity_id IS NOT NULL THEN 'false' ELSE 'true' 
        END) AS available

到mikro-orm查询构建器,但我找不到这样做的方法。有没有办法添加一个新的字段到记录使用查询构建器?

cx6n0qe3

cx6n0qe31#

使用Mikro-ORM QueryBuilder中的expr()方法,通过CASE表达式向记录添加新字段

const siRepository = orm.em.getRepository(Si);
const qb = siRepository.createQueryBuilder('si')
  .leftJoin('si.sipMapping', 'sip_mapping')
  .addSelect(qb.expr().selectCase()
    .when('sip_mapping.sipIdentityId IS NOT NULL', 'false')
    .else('true')
    .end()
    .as('available')
  );
const results = await qb.getMany();

相关问题