2017-03-07 4 views
0

Dies funktioniert wie erwartet und gibt 5 Zeilen zurück.R data.table gibt keine Ergebnisse zurück

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)); 

Dies gibt einen Fehler zurück.

Msg 11536, Ebene 16, Status 1, Zeile 3
EXECUTE-Anweisung ist fehlgeschlagen, weil sein WITH RESULT-Klausel 1 Ergebnis Satz SETS angegeben (s), aber die Aussage nur gesendet 0 Ergebnis (e) während der Laufzeit .

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)); 

Alle Beispiele, die ich für Datentabellen verwendet, um diese Art von Syntax finden konnte, und erwartet, dass es offenbar zu arbeiten. dt[,DataField,by=FilterField]'

Zum Beispiel https://www.r-bloggers.com/intro-to-the-data-table-package/

Antwort

0

Die Lösung ist

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

Gibt es eine Möglichkeit zu fett der Schlüsseländerung innerhalb des Codeblocks? – BWhite

+0

@Frank Wenn ich diesen Kommentar in die Kommentare setze, wo gebe ich das Beispiel an? – BWhite

+1

Ich postete dies unter der Annahme, dass andere die gleichen Beispiele lesen und auf das gleiche Problem stoßen und weil ich die Antwort anderswo nicht finden konnte. – BWhite

Verwandte Themen