当第一个不可用时,mysql获得第二个可能的值

时间:2014-11-13 23:43:41

标签: mysql sql subquery

在我的应用程序中,我有一个表中的自由职业者列表以及另一个表中的工作速率配置。工作费率配置类似于每小时费率,每日费率,每工作类型费率

有些自由职业者没有每小时费率,而是每天或每工作类型。

我的初始查询是(LEFT OUTER)将freelancer表与freelancer_workrates表连接并根据perhrrate过滤行。每当perhrrate不可用时,我想使用相同的查询检索他们的下一个可用费率。这可能吗?

目前,我在结果集中检查了这一点,并为那些自由职业者单独调用以获得他们的下一个可用费率。这最终导致对数据库进行过多的SQL查询。我想避免这种情况。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用coalesce

这将从三种费率中选择第一个非NULL值

  Coalesce(perHrRate, perDayRate, perWorkTypeRate)