Вопрос
Простой вопрос, но не могу найти ответ.
Вместо:
Df <- sqlQuery(ch, "SELECT * FROM tblTest WHERE Id=25")
Я хочу более динамичный кусок кода. Что-то типа:
Id <- 25
Df <- sqlQuery(ch, c("SELECT * FROM tblTest WHERE Id=", Id))
Но это не правильно.
Решение
Мы можем использовать пасту:
Df <- sqlQuery(ch, paste("SELECT * FROM tblTest WHERE Id =", Id))
c
объединены в вектор, paste
предназначен для строки конкатенации.
Или мы можем использовать SPRINTF:
sprintf("SELECT * FROM tblTest WHERE Id = %s", Id)
Другие советы
Если у вас есть несколько или использованные аргументы и запрос, содержащий%, вы можете использовать что-то вроде следующего:
sprintf("SELECT * FROM test WHERE id = %1$s AND name = %2$s and type like ‘%%tall%%’”, id, name)
Не связан с StackOverflow