繁体   English   中英

postgresql左联接和排序

[英]postgresql left join and order by

我正在运行以下查询以根据与另一个表(下例中的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是文本;

我该怎么做? 谢谢

为什么不只向查询添加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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM