當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R dbplyr sql_expr 從 R 表達式生成 SQL


用於從 R 表達式生成 SQL 的低級構建塊。字符串被轉義;名稱成為裸 SQL 標識符。用戶中綴函數已刪除%

用法

sql_expr(x, con = sql_current_con())

sql_call2(.fn, ..., con = sql_current_con())

參數

x

準引用表達式

con

用於轉義的連接。從函數翻譯調用時將自動設置。

.fn

函數名稱(作為字符串、調用或符號)

...

函數的參數

細節

在包中使用sql_expr()將需要使用globalVariables()以避免R CMD check注釋。這是一點額外的痛苦,我認為這是值得的,因為它會帶來更具可讀性的翻譯代碼。

例子

con <- simulate_dbi() # not necessary when writing translations

sql_expr(f(x + 1), con = con)
#> <SQL> F(x + 1.0)
sql_expr(f("x", "y"), con = con)
#> <SQL> F('x', 'y')
sql_expr(f(x, y), con = con)
#> <SQL> F(x, y)

x <- ident("x")
sql_expr(f(!!x, y), con = con)
#> <SQL> F(`x`, y)

sql_expr(cast("x" %as% DECIMAL), con = con)
#> <SQL> CAST('x' AS DECIMAL)
sql_expr(round(x) %::% numeric, con = con)
#> <SQL> ROUND(x) :: numeric

sql_call2("+", quote(x), 1, con = con)
#> <SQL> x + 1.0
sql_call2("+", "x", 1, con = con)
#> <SQL> 'x' + 1.0
源代碼:R/sql-expr.R

相關用法


注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Generate SQL from R expressions。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。