sql - 如何在 select 中使用函数以及 Sequelize 中的所有记录?

标签 sql sequelize.js

下面是一个 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/

相关文章:

php - 如何插入多条记录

'tags-heavy' CRM 应用程序的 SQL 与 NoSQL 数据库

node.js - 连接到 AWS Postgres SequelizeConnectionError : password authentication failed

node.js - 在 Sequelize 中添加具有起始值的自动递增整数

mysql - Sequelize.js - 根据列值查找行的排名

使用 Sequelize CLI 进行 MySql 迁移。无法添加外键约束

javascript - User.create 不是一个函数 sequelize

查找表上的 SQL 主键还是唯一约束?

mysql - 如何最好地实现 3 维 SQL 关系?

sql - 尝试使用表别名选择 null 作为 columnName