복붙노트

[SQL] R의 동적은 "문자열"

SQL

R의 동적은 "문자열"

간단한 질문이지만 답을 찾을 수 없습니다.

대신에:

Df <- sqlQuery(ch, "SELECT * FROM tblTest WHERE Id=25")

나는 코드의 역동적 인 조각을합니다. 뭔가 같은 :

Id <- 25
Df <- sqlQuery(ch, c("SELECT * FROM tblTest WHERE Id=", Id))

하지만이 올바르지 않습니다.

해결법

  1. ==============================

    1.우리는 붙여 넣기를 사용할 수 있습니다 :

    우리는 붙여 넣기를 사용할 수 있습니다 :

    Df <- sqlQuery(ch, paste("SELECT * FROM tblTest WHERE Id =", Id))
    

    벡터에 C을 병합은 페이스트 문자열 연결을위한 것입니다.

    아니면 sprintf를 사용할 수 있습니다 :

    sprintf("SELECT * FROM tblTest WHERE Id = %s", Id)
    
  2. ==============================

    2.여러 또는 재사용 인자와 %는 다음과 같은 것을 사용할 수 있습니다 포함 된 쿼리가있는 경우 :

    여러 또는 재사용 인자와 %는 다음과 같은 것을 사용할 수 있습니다 포함 된 쿼리가있는 경우 :

    sprintf("SELECT * FROM test WHERE id = %1$s AND name = %2$s and type like ‘%%tall%%’”, id, name)
    
  3. ==============================

    3.그냥 dplyr / tidyverse str_glue 명령을 통해 문자열 보간을 사용하는 사용하여보다 현대적인 답이를 업데이트하려면 :

    그냥 dplyr / tidyverse str_glue 명령을 통해 문자열 보간을 사용하는 사용하여보다 현대적인 답이를 업데이트하려면 :

    str_glue("SELECT * FROM tblTest WHERE Id = {Id}")
    

    당신은 당신이 거기에 원하는 표현을 넣을 수 있습니다. 예를 들어, 벡터를 사용하여 여러 ID를 선택하려는 경우 :

    str_glue("SELECT * FROM tblTest WHERE Id IN ({str_c(id_vector, collapse = \",\"})")
    
  4. from https://stackoverflow.com/questions/3416973/dynamic-string-in-r by cc-by-sa and MIT license