javascript - 如何在sequelize中选择案例查询?

标签 javascript sql node.js postgresql sequelize.js

我有一个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);

谁能帮帮我?谢谢。

最佳答案

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

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 else 23。这将生成如下查询

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

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

关于javascript - 如何在sequelize中选择案例查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40462446/

相关文章:

Sql Server 指定另一个时区的时间

node.js - 不知道如何使用 csv-writer 在 API 调用后逐行写入 csv 文件

javascript - 使用 redux 操作创建器调用 onClick() 时应该测试什么?

javascript - 当打印到 wkhtmltopdf 时,嵌入到网页中的谷歌地图溢出了它的边界

javascript - 如何在 FireBase 和 Angular 中根据用户隐藏元素

javascript - 在 Node js 中创建桌面应用程序会让我的代码面临公开的危险吗?

javascript - 如何将大量文本文件放入 JavaScript 数组中?

javascript - 在 Node 中,如何使用 Promise 从多个 URL 请求 JSON?

sql - 展平枚举表中的 T-SQL 位掩码

MySQL - 在 WHERE IN 查询中保留重复项和顺序