Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将其更改为在postgresql中运行?_Sql_Postgresql_Sql Update - Fatal编程技术网

如何将其更改为在postgresql中运行?

如何将其更改为在postgresql中运行?,sql,postgresql,sql-update,Sql,Postgresql,Sql Update,要在postgreSQL中运行,需要更改哪些内容 我得到了一块sql UPDATE ACC SET ACC.ACC_EC = SITESmin.ACC_EC, ACC.ACC_NC = SITESmin.ACC_NC FROM ACC INNER JOIN LATERAL ( SELECT TOP 1 * FROM SITES

要在postgreSQL中运行,需要更改哪些内容

我得到了一块sql

UPDATE ACC
SET ACC.ACC_EC = SITESmin.ACC_EC, 
    ACC.ACC_NC = SITESmin.ACC_NC
FROM    ACC
       INNER JOIN LATERAL ( SELECT TOP 1
                                *
                      FROM      SITES
                      ORDER BY  ( acc_ec - site_etg ) * ( acc_ec - site_etg ) + (acc_ncb - site_ntg ) * ( acc_ncb - site_ntg )
                ) SITESmin;
它似乎正在使用SET,但我不知道为什么,所以如果不需要它,请将其删除。 我正试图让postgresql计算距离。对于文件1中的每条记录,我必须与文件2中的3300条记录进行比较,并选择最接近的记录。公认的智慧建议为3300提供阵列解决方案,但我不知道如何做到这一点。也许它是SQL中的“子查询”

如果我被允许上传样本,我会这么做,尽管我觉得这是不允许的

这是文件名

public.acc.Location_Easting_OSGR 
public.acc.Location_Northing_OSGR
"public"."Sites"."SITE_ETG" 
"public"."Sites"."SITE_NTG" 
试试这个:

WITH SITESmin as (
    SELECT ACC_EC, ACC_NC
    FROM      SITES
    ORDER BY  ( acc_ec - site_etg ) * ( acc_ec - site_etg ) + (acc_ncb - site_ntg ) * ( acc_ncb - site_ntg )
    LIMIT 1
)
UPDATE ACC
SET ACC.ACC_EC = SITESmin.ACC_EC,
    ACC.ACC_NC = SITESmin.ACC_EC
FROM SITESmin;

如果不起作用,请提供模式和一些数据,以便于复制

s/ACC内部联接横向//
,并将子查询顶部的
顶部1
替换为底部的
限制1
。和:将一些范围表限定符添加到
。。。acc_ec-site_etg…
等,让其他人可以理解查询。谢谢Gab,抱歉我的延迟,不得不重建所有内容,我正在努力导入我的csv文件,因为“时间戳”格式问题阻止了我。无法编辑op so,如果架构是指字段名,它们现在的名称如下:public.acc.Location\u Easting\u OSGR和public.acc.Location\u Northing\u OSGR然后是“public”。“SITE”;“SITE\u ETG”和“public”。“SITE”;“SITE\u NTG”我将在op中添加一个描述,也许我可以这样做。一匹没有名字的马禁止我编辑我的开场白,因为它添加了错误的代码。