Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在sequelize中选择案例查询?_Javascript_Sql_Node.js_Postgresql_Sequelize.js - Fatal编程技术网

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

Javascript 如何在sequelize中选择案例查询?,javascript,sql,node.js,postgresql,sequelize.js,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({

我有一个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']]
}

因此,在我的示例中,当field1为true时,它将返回55,否则返回23。这将生成如下查询

SELECT CASE WHEN "field1" THEN 55 ELSE 23 END AS "field3" FROM "models"
有关更多信息,请参阅文档

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