在2个不同字段的nullif内的Postgres COALESCE

时间:2018-07-03 21:05:41

标签: postgresql sql-order-by coalesce

我是SQL和POSTGRES的新手,并且有一个简短的问题。现在,我有2个不同的表,一个包含汽车信息,一个具有部分汽车信息,我想对car.vin或partial_car.vin进行排序,这取决于是否存在并将所有null / empty字符串发送到排序的末尾。目前,我的ORDER BY语句如下:

ORDER BY nullif(coalesce(car.vin, partial_car.partial_vin), '') asc nulls last limit 50 offset 0

我对此的期望是,合并将采用第一个非null值并将其用于排序,否则它将返回null并将其发送到末尾。到目前为止,我的结果还无法理解。在实际值之间放置一个空值,等等。如果再次进行此更改,则我合并(car.vin,'')可以正常工作。任何人都有这种行为的想法吗?让我知道您是否还需要我更多的东西。

1 个答案:

答案 0 :(得分:0)

这是我的人为错误。发送给客户端的对象未正确填充部分数据。因此排序是正确的,但是由于这些值不存在而出现空白。