Вопрос

Простой вопрос, но не могу найти ответ.

Вместо:

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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top