【发布时间】:2017-07-13 16:31:58
【问题描述】:
我是 SQL 新手,我想知道是否有任何方法可以在表中搜索具有来自外部表(csv 文件)列的值的实例。为了以更清晰的方式解释这一点,这就是我正在处理的内容:如果 csv 文件中的一列包含纬度,另一列包含经度;我想搜索一个包含多个位置信息的表格,表格中指定了它们的纬度和经度。
我想检索有关特定位置的信息,其中包含纬度和经度作为 csv 文件的输入。
它看起来像这样吗? :
CREATE TABLE MyTable(
latitude DECIMAL(5, 2) NOT NULL,
longitude DECIMAL(5, 2) NOT NULL
);
LOAD DATA INFILE 'C:\Users\Admin\Desktop\Catalog.csv'
INTO TABLE MyTable
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
SELECT
main.object_id,
main.latitude,
main.longitude,
main.Some_Information
FROM
location_info AS main,
MyTable AS temp
WHERE
main.latitude = temp.latitude AND
main.longitude = temp.longitude
我也尝试过使用 psql 的 \copy 比如:
\copy MyTable FROM 'C:\Users\Admin\Desktop\Catalog.csv' WITH CSV;
这里给出 -> http://postgresguide.com/utilities/copy.html。 但这也不起作用。在复制时或附近的“\”附近有一个错误,但这可能是因为存在旧版本的 psql。 另外我不是超级用户,因此使用 \copy 而不是 COPY FROM。
我还尝试使用临时表并在其旁边使用 \copy。它给出了与上面相同的错误。
【问题讨论】:
-
欢迎来到 SO,CrunchyMint。您在问题中标记了多个不同的数据库。如果您在帖子中使用 PostgreSQL,请删除您的
mysql和sql-server标签,因为它们是完全不同的 RDMS。 -
你得到的确切错误是什么?
-
抱歉,我编辑了它们。
-
^ "DATA" 处或附近的语法错误 ---> 这就是我为上述代码得到的结果
-
and ^ syntax error at or near "\" ---> 是我得到的 \copy