Sql server 创建函数进行SQL查询

Sql server 创建函数进行SQL查询,sql-server,r,Sql Server,R,最后,我尝试使用shiny创建一个反应式SQL查询,但在使用静态输入时遇到了一些问题。我有一个定义如下的基本函数,以前的版本比较简单,只有一个输入可以正常工作: selectWhereIn <- function(col0,col1,group) { myconn <- odbcConnect("WMT_Data") data <- sqlQuery(myconn, paste0("SELECT ",col0," FROM dbo.StoreInfo WHERE ",c

最后,我尝试使用shiny创建一个反应式SQL查询,但在使用静态输入时遇到了一些问题。我有一个定义如下的基本函数,以前的版本比较简单,只有一个输入可以正常工作:

selectWhereIn <- function(col0,col1,group)
{
  myconn <- odbcConnect("WMT_Data")
  data <- sqlQuery(myconn, paste0("SELECT ",col0," FROM dbo.StoreInfo WHERE ",col1," in ('",group,"') ORDER BY ",col0))
  close(myconn)

  return(levels(data[,1]))
}
正如我所说,我使用了一个更简单的SQL查询,所以我确信这只是一些愚蠢的事情。我错过了什么

谢谢

我找到了它——这只是一个愚蠢的错误。在函数中

return(levels(data[,1]))
应该是

return(levels(data[,1]))

由于某种原因,以前需要级别,但现在不再需要了,因为没有级别,我得到了一个空值。

因此,基本上您尝试调用函数selectwhereinhd、WMTZone和andry,并传递这3个参数,但没有得到预期的输出!是的-这是一个问题还是一个评论?并不是我没有得到预期的输出,而是我得到了NULL,但是当我运行函数中的所有代码,或者运行函数时,只有一个输入硬编码SQL查询中的其他两个,它工作得很好。问题不是很清楚!您是否尝试打印您的查询?是的,并直接在SQL Server中进行了测试,效果良好。正如我在上面的第二个代码块中所说,查询也可以从R开始工作。我认为它与导致我出现问题的函数定义或调用有关。
return(levels(data[,1]))
return(levels(data[,1]))