标题几乎总结了一下:我想指定空值在我的结果中是第一个还是最后一个。在我的特定情况下,我希望以降序排序顺序获取空值,对应于SQL,如下所示:
SELECT id, something, something_else
FROM mytable
ORDER BY something DESC NULLS FIRST;
这是PostgreSQL语法(我正在使用这个项目)。同样的问题可能适用于其他数据库(虽然我不认为MySQL支持该语法,不确定它是否支持该功能)。当然,首先有空值是升序(see PostgreSQL docs)的默认值,所以只有DESC NULLS FIRST和ASC NULLS LAST的组合才有用......除了方便的话,MySQL默认为precisely the opposite. < / p>
似乎我应该能够做到以下其中一项:
MyModel.select().order_by(MyModel.something.desc().nulls_first())
MyModel.select().order_by(MyModel.something.desc(nulls_first))
我不是Python大师,但我在Peewee文档或源代码中找不到任何看起来像我想要的东西。
当然可能有很多变通方法。以下是我发现或想到的,按实际性递减顺序(对我而言):
所以:Peewee可以这样做吗?如果没有,是否有比我想到的更好的解决方法?
答案 0 :(得分:1)
说实话,我认为你的问题太复杂了。
从Peewee 3.x开始,您可以指定空值的处理:
for (var k = 0; k < coordinateLength - 1; k++) {
var coordinateInfoTemp = coordinates[k].split("~");
for (var j = 0; j < markerList.length; j++) {
var markerTmp = markerList[j];
if (markerTmp.store_id === coordinateInfoTemp[3]) {
var latlngNew = new google.maps.LatLng(coordinateInfoTemp[1].replace(',', '.'), coordinateInfoTemp[0].replace(',', '.'));
markerTmp.setPosition(latlngNew);
infowindow.setContent(yourcontent);//update here
break;
}
}
}
您还可以使用case语句创建包含1或0的别名列,以指示要排序的列是否为null。然后按顺序使用该别名。