2016-12-14 99 views
2

是否有任何方法可以将csv文件设置为多个值并将这些值输入到postgres select语句中。例如,如果我有叫text.csv与价值1,2,3,4,5,6 CSV文件......有没有办法对我进行选择,例如:根据csv文件值进行选择

select * 
from table 
where id in (test.csv); 

回答

2

有一个fdw文件 - https://www.postgresql.org/docs/current/static/file-fdw.html - 允许您使用文件作为表的外部数据包装器。

这里是例子 - http://www.postgresonline.com/journal/archives/250-File-FDW-Family-Part-1-file_fdw.html

+0

道歉,但这是如何工作的? – EamonnMcElroy

+0

请参阅示例 - (如上所述创建“外部服务器”之后),您将创建所谓的“外部表”,此表的行为与select中的普通表一样。但数据将从文件中获取。 – JosMac

-1

嗯,这是它是如何做!

Select * from table where id in (
    select id from openrowset('MSDASQL' 
       ,'Driver={Microsoft Text Driver (*.txt; *.csv)}' 
       ,'select * from c:\test.csv') 
) 

如果您的sql server未启用Ad Hoc Distributed Queries,请先在sql下启动。

sp_configure 'show advanced options', 1; 
RECONFIGURE; 
GO 
sp_configure 'Ad Hoc Distributed Queries', 1; 
RECONFIGURE; 
GO 

祝你好运! Keyur

+0

这是无效的SQL,对于Postgres也是无效的(问题中只有两个标签) –