КАК с целыми числами в Postgree SQL с использованием R - PullRequest
0 голосов
/ 02 августа 2020

Мне нужно загрузить таблицу из postgree в R, но отфильтрованную по части INT.

Я пытался:


library(RPostgreSQL)


con <- dbConnect(PostgreSQL(), user= "#####", dbname="######",password="#####"  
                 ,host="#####", port='######')                         

vetor_id <- c("83052407","10406587","12272377")

match_id <- dbGetQuery(con,paste("
                                         SELECT *
                                         FROM public.data2015 
                                         WHERE  id IN ('", paste(vetor_id,collapse = "','"),"')
                                        ",sep = ""))

dbDisconnect(con)

Я также пробовал CONTAINS, но не не работает. WHERE Contains(id,", paste(vetor_id,collapse = " OR "),"')

id - это INT, а vetor_id - лишь часть значений. Я имею в виду, vector_id = 83052407 должен найти id = 83052407000132.

Как я могу использовать что-то вроде LIKE и поставить vetor_id%?

1 Ответ

2 голосов
/ 02 августа 2020

Это то, что вы хотите?

WHERE id::text like ? || '%'

Это преобразует целое число id в строку и пытается сопоставить его с параметром. Если id начинается с параметра, условие выполняется.

Обратите внимание, что здесь используется допустимый параметр запроса (представленный вопросительным знаком): вам следует привыкнуть к параметризации ваших запросов вместо объединения переменных в строке запроса: это чище, эффективнее и безопаснее.

...