Search code examples
rroracle

Passing multiple argument to dbGetQuery()? with like operator


I am new to R coding. I have a question.

Df <- dbGetQuery(con, "SELECT * FROM EMP WHERE ename like '%raju%'")

I want a more dynamic piece of code. when have multiple names such as deepak, ravi, raghu etc.


Solution

  • Consider dynamic concatenation with paste0. Outer paste0 is to enclose larger string with needed quotes and LIKE operator:

    likevars = paste0("LIKE '%", paste0(c("deepak", "ravi", "ragh"), 
                                        collapse="%' OR ename LIKE '%"), "%'")
    
    Df <- dbGetQuery(con, sprintf("SELECT * FROM EMP WHERE ename %s", likevars))
    
    # SELECT * FROM EMP WHERE ename LIKE '%deepak%' OR ename LIKE '%ravi%' OR ename LIKE '%ragh%'