【问题标题】:How to select case query in sequelize?如何在sequelize中选择案例查询?
【发布时间】:2017-03-20 15:14:42
【问题描述】:

我有一个 sql 查询:

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

我想用 sequelizejs 来实现它,

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

yield Model.findAll(params);

谁能帮帮我?谢谢。

【问题讨论】:

    标签: javascript sql node.js postgresql sequelize.js


    【解决方案1】:

    对于仍在寻找这个答案的人

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

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

    所以在我的示例中,当 field1 为 true 时,它​​将返回 55,否则返回 23。这将生成类似的查询

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

    有关更多信息,您可以查看文档 http://docs.sequelizejs.com/en/latest/docs/querying/#attributes

    【讨论】:

      猜你喜欢
      • 2021-04-30
      • 2014-07-29
      • 2021-08-12
      • 1970-01-01
      • 2016-07-18
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多