sql >> データベース >  >> RDS >> Oracle

RマークダウンSQLチャンクでSQLパラメーターを使用する方法

    たぶんこれはあなたのための解決策であり、glue_sqlを使用して、それは私のコンピュータで動作します

    https://community.rstudio .com / t / using-multiple-r-variables-in-sql-chunk / 2940/13

    Rmdチャンク:

    library(DBI)
    library(glue)
    library(RSQLite)
    
    con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
    dbWriteTable(con, "mtcars", mtcars, overwrite = TRUE)
    
    cyl_int <- c(4L, 6L)
    cyl_sql <- glue_sql("{cyl_int*}")
    
    
      SELECT * FROM mtcars
      WHERE cyl IN (?cyl_sql)
      LIMIT 3
    

    日付列の場合、データベースに従って正しくフォーマットするか、to_date(etc, '%d%...')を使用する必要がある場合があります。 ここsqliteでは、ISO-8601の日付を使用すると簡単です。例:

    library(DBI)
    library(glue)
    library(RSQLite)
    
    con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
    mtcars$DATE_1 <- seq(from = Sys.Date() - 15, to = Sys.Date() + nrow(mtcars) -16, by = 1) %>% as.character()
    dbWriteTable(con, "mtcars", mtcars, overwrite = TRUE)
    
    cyl_int <- c(4L, 6L)
    cyl_sql <- glue_sql("{cyl_int*}")
    
    d_date_sql <- glue_sql("{Sys.Date()*}", .con = con)
    
    

    ここ

      SELECT cyl, mpg, DATE_1 FROM mtcars
      WHERE DATE_1 >= ?d_date_sql
      ORDER BY DATE_1
    




    1. データベースを検索するためにPHPで検索フォームを作成しますか?

    2. 挿入選択を使用してレコードをコピーしてから、同じレコードセットの属性を更新します

    3. Oracleで複数行の挿入を行う最良の方法は?

    4. SQL:複数の列でGROUPBYとMAXを使用する