根据csv文件值进行选择

时间:2016-12-14 15:29:57

标签: sql postgresql

有没有办法获取具有大量值的csv文件,并将这些值提供给postgres select语句。例如,如果我有一个名为text.csv的csv文件,其值为1,2,3,4,5,6 ......我可以通过以下方式执行选择:

int main() {        
  A* varA = new C();
  C* varC = static_cast<C*>(varA);
  varC->f();

  cout << "varC->a is " << varC->a << endl;
  cout << "varC->b is " << varC->b << endl;
  cout << "varC->c is " << varC->c << endl;
} // oops, forgot to delete varA/varC, memory leak!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:-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