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