admin

我可以在R脚本中优雅地包含格式化的SQL字符串吗?

sql

我正在使用使用长SQL字符串的R脚本,并且我想使查询相对不受其他标记的影响,以便允许在编辑器和应用程序之间进行复制和粘贴。我还希望能够将查询分成几行以提高可读性。

在RODBC文档中,该paste函数用于从单独的块中构建查询,但是我更希望避免混淆,并使用较少的引号和逗号。谢谢你的帮助。


阅读 120

收藏
2021-05-10

共1个答案

admin

您可以覆盖%+%运算符以具有更好的字符串隐含语法:

'%+%' <- function(x,y) paste(x,y,sep="")

y<-"y1"
x<-"somethingorother"
query<-
'SELECT DISTINCT x AS ' %+% x %+%',\n'    %+%
'                y AS ' %+% y %+% '\n'    %+%
' FROM tbl
 WHERE id=%s
 AND num=%d'

cat(query,"\n")

产量:

> cat(query,"\n")
SELECT DISTINCT x AS somethingorother,
                y AS y1
 FROM tbl
 WHERE id=%s
 AND num=%d
2021-05-10