最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to select case query in sequelize? - Stack Overflow

programmeradmin5浏览0评论

I have a sql query:

SELECT field1, field2,
  CASE
    WHEN field1=1 THEN 'a'
    ELSE 'b'
  END 
  AS field3
FROM test

and I want to implement it with sequelizejs ,

const params = {
  attributes: //DO SELECT CASE,
};

yield Model.findAll(params);

Can anyone help me? Thank you.

I have a sql query:

SELECT field1, field2,
  CASE
    WHEN field1=1 THEN 'a'
    ELSE 'b'
  END 
  AS field3
FROM test

and I want to implement it with sequelizejs ,

const params = {
  attributes: //DO SELECT CASE,
};

yield Model.findAll(params);

Can anyone help me? Thank you.

Share Improve this question edited Aug 12, 2017 at 14:00 Gherbi Hicham 2,5844 gold badges29 silver badges42 bronze badges asked Nov 7, 2016 at 10:03 MamenMamen 1,4367 gold badges22 silver badges47 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 19

For the people that are still looking for this answer

Model.findAll({
  attributes: [[models.sequelize.literal('CASE WHEN "field1" = true THEN 55 ELSE 23 END'), 'field3']]
}

or

Model.findAll({
  attributes: { include: [[models.sequelize.literal('CASE WHEN "field1" = true THEN 55 ELSE 23 END'), 'field3']]}
}

So in my example when field1 is true it will return 55 else 23. This will generate a query like

SELECT CASE WHEN "field1" THEN 55 ELSE 23 END AS "field3" FROM "models"

For more information you can look in the documentation http://docs.sequelizejs.com/en/latest/docs/querying/#attributes

发布评论

评论列表(0)

  1. 暂无评论