按两列的最大值排序
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
我真的不知道这个标题是否反映了我的担忧,所以如果你有更好的建议,请继续。
我在 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