postgresql左联接和排序

时间:2019-09-16 15:09:45

标签: sql postgresql

我正在运行以下查询,根据与另一个表(下例中的Registy_2018_DEF)中存储的编码系统的匹配,从表(下例中的2018_01)中提取数据:

COPY (Select a.mmsi, a.locdate, a.loctime, a.lon, a.lat
from "2018_01" a
left join "Registry_2018_DEF" b
using (mmsi)
WHERE b.stcodedef = '0')
TO 'C:\AIS_DEF\DEF\FINAL\2018\2018_01\csv_ship_types\st_0_2018_01.csv' DELIMITER ';' CSV HEADER;

它工作正常,但是结果csv中的记录并非总是排序。我想将生成的csv输出按mmsi(ASC),locdate(ASC)和loctime(ASC)排序。 mmsi列是数字类型,locdate是日期,loctime是文本;

我该怎么做?谢谢

1 个答案:

答案 0 :(得分:0)

为什么不只是在查询中添加ORDER BY子句?

COPY (
    select a.mmsi, a.locdate, a.loctime, a.lon, a.lat
    from "2018_01" a
    left join "Registry_2018_DEF" b using (mmsi)
    where b.stcodedef = '0'
    order by a.mmsi, a.locdate, a.loctime
) TO 'C:\AIS_DEF\DEF\FINAL\2018\2018_01\csv_ship_types\st_0_2018_01.csv' 
    DELIMITER ';' 
    CSV HEADER;
相关问题