sql-server - 如何使用 dplyr 连接 SQL Server 中表中多列的字符串?

标签 sql-server r dplyr string-concatenation dbplyr

如标题所示,我想连接 SQL Server 中表中的几列,我尝试使用 paste 函数,如下所示,但出现以下错误:

> tbl(channel,'##iris') %>% 
+   mutate(string=paste(Species,'-',
+                       Sepal.Length,'-',
+                       Sepal.Width,'-',
+                       Petal.Length,'-',
+                       Petal.Width,sep=''))
Error: PASTE() is not available in this SQL variant

最佳答案

我找到了解决方案here由 Ben Baumer 提供,并希望在此分享。

方法是使用CONCAT而不是paste

> tbl(channel,'##iris') %>% 
+   group_by(Species,Sepal.Length,Sepal.Width,Petal.Length,Petal.Width) %>%
+   summarise(string=MAX(CONCAT(Species,'-',
+                               Sepal.Length,'-',
+                               Sepal.Width,'-',
+                               Petal.Length,'-',
+                               Petal.Width))) %>%
+   head(.,1)
# Source:   lazy query [?? x 6]
# Database: Microsoft SQL Server 11.00.6251[dbo@WCDCHCMSAH01\CMSAH_DC7_MP1/data_ha_amr]
# Groups:   Species, Sepal.Length, Sepal.Width, Petal.Length
  Species Sepal.Length Sepal.Width Petal.Length Petal.Width string              
  <chr>          <dbl>       <dbl>        <dbl>       <dbl> <chr>               
1 setosa          4.30        3.00         1.10       0.100 setosa-4.3-3-1.1-0.1

关于sql-server - 如何使用 dplyr 连接 SQL Server 中表中多列的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48536983/

相关文章:

sql - 在 sql server 2008 中备份数据库中的单个表及其数据

r - 如何使用列表子元素名称而不是实际子元素名称

json - 让 R Plumber API 在 POST 上使用 JSON

c# - command.ExecuteScalar 没有返回我知道存在的值

.net - 将 Sql-Server (express) 从命名实例更改为 localhost?

java - 如何使用sql手动更改quartz作业计划时间?

r - 将 df$var 传递给函数时,是否可以获得 'var' 的名称?

r - 如何使用 dplyr 确定在指定天数内发生的事件数?

r - 如何将 group_by 与 summarize 和 summarise_all 一起使用?

r - 如何在数据框中仅添加缺少的日期