【问题标题】:Keep column names from a data.frame in an output table in sql-server-2016在 sql-server-2016 的输出表中保留来自 data.frame 的列名
【发布时间】:2015-12-29 13:31:59
【问题描述】:

我在sql-server-2016有一张桌子:

CREATE TABLE #tempData (A int not null) 
 INSERT INTO #tempData   VALUES (0);
GO

现在我可以调用我的 R 脚本,将表格作为输入数据(包括列名):

EXECUTE  sp_execute_external_script
                @language = N'R'
              , @script = N'
                        df <- InputDataSet
                        df$B <- 1L'
              , @input_data_1 = N'SELECT * FROM #tempData'
              , @output_data_1_name = N'df'
WITH RESULT SETS (
    (A int not null, B int not null)
);

返回:

A   B
0   1

正如预期的那样。但是我可以在不指定名称的情况下执行相同的操作吗,{A,B},即它将直接使用来自data.frame 的名称。

【问题讨论】:

    标签: sql-server r sql-server-2016


    【解决方案1】:

    不幸的是,如今 BxlServer 如何在 SQL Server 中翻译 R,您必须设置变量并在 RESULTS SET 中键入。

    【讨论】:

      【解决方案2】:

      根据当前文档 (https://msdn.microsoft.com/en-us/library/mt604368.aspx),这似乎是不可能的。

      WITH RESULTS SETS clause is mandatory if you are returning a result set from R . The specified column data types need to match the types supported in R (bit, int, float, datetime, varchar)
      

      【讨论】:

      • 感谢您的回答。我确实读过这个,但在我看来这不一定相同。我知道 set 子句是强制性的,因为我需要指定类型,但这不应该排除从 data.frame 检索名称,或者?
      猜你喜欢
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2017-01-08
      • 1970-01-01
      • 2014-11-13
      相关资源
      最近更新 更多