按两列的最大值排序

Order by the greatest value of two columns

我真的不知道这个标题是否反映了我的担忧,所以如果你有更好的建议,请继续。

我在 SQL 中有一个 table,它有两列代表价格值:

rent_cost
sale_cost

我需要 select 所有这些,无论它们是出租还是出售。那部分没问题,但我需要按价格订购所有这些(无论是出租还是出售)。问题是有时一行可能有或没有可能有一个值,所以我真的无法破解这个。

我需要像价格只有一个值而不是两个值一样订购它们。

例子

{
 id:1,
 rent_value: 3000,
 sale_value: null
},
{
 id:2,
 rent_value: 2200,
 sale_value:4500
},
{
 id:3,
 rent_value: null,
 sale_value: 3300
},

如果我select全部按价格降序排列,我应该进入return[2,3,1]

PD:我正在使用 MySQL。

您可以使用 greatest(),但您必须注意 NULL 值:

order by greatest(coalesce(rent_value, 0), coalesce(sale_value, 0)) desc