下面是一个 Sequalize 查询,它根据表列值检索转换后的值。
courses.findAll({
attributes: [ [sequelize.fn('to_char', sequelize.col('session_date'), 'Day'), 'days']]
});
上面的 sequlaize 查询将返回与后面的 SQL 查询相同的结果。
select to_char(bs.session_date, 'Day') as days from courses bs;
预期输出:
我想要属性中的转换值以及如下所示的所有记录。我知道我们可以在属性数组中提及所有列名,但这是一项乏味的工作。 SQL 查询中类似于星号的任何快捷方式。
select to_char(bs.session_date, 'Day') as days,* from courses bs;
我尝试了下面的 sequalize 查询,但没有成功。
courses.findAll({
attributes: [ [sequelize.fn('to_char', sequelize.col('session_date'), 'Day'), 'days'],'*']
});
最佳答案
attributes
选项可以传递一个对象以及一个字段数组,以便在这种情况下进行更精细的调整。 the documentation 中对此进行了简要说明。 .
courses.findAll({
attributes: {
include: [
[ sequelize.fn('to_char', sequelize.col('session_date'), 'Day'), 'days' ]
]
}
});
通过使用 include
,我们将字段添加到 courses.*
选择中。同样,我们还可以在 attributes
对象中包含一个 exclude
参数,这将从 courses.*
选择中删除字段。
关于sql - 如何在 select 中使用函数以及 Sequelize 中的所有记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68031222/