gpt4 book ai didi

sql-server - SQL Server R 多个结果集

转载 作者:行者123 更新时间:2023-12-02 20:16:41 24 4
gpt4 key购买 nike

使用 SQL Server 2016+ 执行 R 脚本是否可以获得多个表?让我们从互联网上随机举一个简单的例子(不需要发布我的例子,以免问题变得过于复杂):

EXEC sp_execute_external_script
@language =N'R',
@script=N'OutputDataSet<-InputDataSet',
@input_data_1 =N'SELECT 1 AS hello'
WITH RESULT SETS (([hello] int not null));

发布于here .

这里结果作为单个表返回。假设我对数据进行了各种计算,现在我想返回多个表作为结果。

例如:

a<-InputDataSet

b<-InputDataSet + 5

这些将返回两个不同的表作为结果。现在我想不出任何好的方法来返回两个单独表中的数据,因为它只返回一个表。显然,我可以这样返回:

OutputDataSet<-data.frame(a, b)

但是处理不同的函数和不同的数据很快就会变得相当麻烦。例如,我使用函数lm。现在,一个数据集将计算估计值,另一个数据集将是参与方程的每一列的系数。同样,我当然可以连接这两个数据表并稍后处理它们,但在很多情况下输出结果会变得巨大。

该过程的参数如下所示:...,@output_data_1_name,但没有@output_data_2_name等,因此我看不到办法。也许可以创建 OutputDataSet 以便它保存多个表?如果是这样 - 由于我缺乏 R 经验,我不知道 R 中有这种方式。

tldr; 是否可以返回多个结果集,或者我唯一的解决方案是在 R 代码中手动构造输出,这样我总能得到一个结果集?

最佳答案

根据 Microsoft 文档,目前不可能返回多个表。它对此表示page :

Only one input dataset can be passed as a parameter, and you can return only one dataset.

但是,您可以返回其他单个变量,如here所述:

Generally, the output of R from the stored procedure sp_execute_external_script is limited to a single data frame. (This limitation might be removed in future.)

However, you can return outputs of other types, such as scalars, in addition to the data frame.

还有一个示例说明如何执行此操作。

关于sql-server - SQL Server R 多个结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45401637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com