2017-03-07 68 views
0

這可以像我期望的那樣工作並返回5行。R data.table返回無結果

EXECUTE sp_execute_external_script  
    @language = N'R'  
,@script = N' OutputDataSet <- InputDataSet;'  
,@input_data_1 = N' select top 5 DataField, FilterField from Table1 
    where DataField is not null;'  
    WITH RESULT SETS ((DataField float NULL, FilterField char(75) NULL)); 

這會返回一個錯誤。

消息11536,級別16,狀態1,3號線
EXECUTE語句失敗,因爲它與RESULT SETS子句指定1個的結果集(一個或多個),但聲明只能在運行時發出0的結果集(S) 。

EXECUTE sp_execute_external_script  
    @language = N'R'   
,@input_data_1 = N' select top 5 DataField from Table1'  
,@script = N' 
    library(data.table) 
    dtf <- data.frame(InputDataSet) 
    dt <- data.table(dtf) 
    dt[,DataField,by=FilterField]' 
WITH RESULT SETS ((DataField float NULL)); 

所有我能找到的採用了這種語法的數據表,以及明顯的例子預計它的工作。 dt[,DataField,by=FilterField]'

例如,https://www.r-bloggers.com/intro-to-the-data-table-package/

回答

0

的解決方案是

**OutputDataSet <-** dt[,DataField,by=FilterField]' 
+0

有沒有一種方法,以粗體顯示的代碼塊中的主要變化? – BWhite

+0

@Frank如果我在評論中發表評論,我應該在哪裏舉例說明? – BWhite

+1

我發佈了這個假設,其他人會閱讀相同的例子,並遇到同樣的問題,因爲我在其他地方找不到答案。 – BWhite