2016-12-28 102 views
0

我想從R執行SQL查詢並將結果導入數據框。這是我的例子。從R執行SQL

library(RODBC) 
db.handle <-odbcDriverConnect('driver= 
{SQL Server Native Client 11.0};server=some_server\\some_server_2; 
database = some_db;trusted_connection=yes') 

query <-"select top 10 * into #temp_table from table_A select * from #temp_table" 

res <- sqlQuery(db.handle, query) 

print(res) 

上面的代碼返回character(0)。它的工作原理沒有#temp_table。有沒有辦法使它與臨時表一起工作?

+5

你試過在table_A後放分號嗎? –

+0

@TimGoodman這裏是我如何修改我的查詢'IF OBJECT_ID('tempdb ..#temp1)不是NULL DROP TABLE#temp1;從table_A中將top 10 *選擇到#temp_table中; select * from#temp_table'我仍然有相同的'character(0)'。 – user1700890

回答

2

儘管這可能是一個有效的SQL語句,但我不確定'RODBC'軟件包能夠理解單獨使用sqlQuery()命令處理查詢的方式。假設您對所使用的數據庫具有讀寫權限,請嘗試將函數操作分爲幾部分:sqlQuery(),sqlSave(),sqlQuery()。如果您需要刪除現有臨時表,則可以使用sqlDrop()。完成後請不要忘記關閉連接。

或者,從'table_A select select top 10'查詢得到結果後,您可以在R中使用'R'與'dplyr'之間的SQL轉換運行SQL。