sprintf для SQL-запроса с разрывами строк в rstudio - PullRequest
0 голосов
/ 23 сентября 2018

У меня следующий (необычайно длинный) SQL-запрос:

select distinct m.*
FROM
(
select c.geo as zipcode, 
a.startdate, 
a.data -> 'Tmin' as Tmin,
a.data -> 'Tmax' as Tmax,
a.data -> 'Tavg' -> as Tavg,
a.data -> 'StnPressure' as StnPressure,
a.data -> 'SeaLevel' as SeaLevel ,
ST_DISTANCE(b.geo, c.geo) as distanceS,
RANK() over (partition by c.geo, a.startdate order by ST_DISTANCE(b.geo, c.geo)) as rnkS
from facttable a
inner join shapefile b on (a.shape_id=b.shape_id)
inner join shapefile c on (ST_DWithin(b.geo,c.geo,5000))
where data_id=98765 and 
b.id = '1000' and 
c.id = '2000' and
c.geoid = '12345'
) m
where m.rnkS = 1

Я пытаюсь перенести это в R и сохранить его в хорошем формате в моем скрипте r, а также обновить запрос с помощью переменных R, используяследующий синтаксис:

query = sprintf("select distinct m.*
FROM
(
select c.geo as zipcode, 
a.startdate, 
a.data -> 'Tmin' as Tmin,
a.data -> 'Tmax' as Tmax,
a.data -> 'Tavg' -> as Tavg,
a.data -> 'StnPressure' as StnPressure,
a.data -> 'SeaLevel' as SeaLevel ,
ST_DISTANCE(b.geo, c.geo) as distanceS,
RANK() over (partition by c.geo, a.startdate order by ST_DISTANCE(b.geo, c.geo)) as rnkS
from facttable a
inner join shapefile b on (a.shape_id=b.shape_id)
inner join shapefile c on (ST_DWithin(b.geo,c.geo,(%s)))
where data_id=(%s) and 
b.id = (%s) and 
c.id = (%s) and
c.geoid = (%s)
) m
where m.rnkS = 1", var_1, var_2, var_3, var_4, var_5)

Но функция sprintf в RStudio включает символы форматирования и вкладки, так что когда я запрашиваю базу данных, запрос никогда не возвращается.Когда я удаляю все разрывы и вкладки вручную, запрос работает.

Есть ли способ сохранить этот длинный запрос в формате r в моем скрипте r и передать его в sprintf без необходимости удалять все разрывы строк и табуляции, чтобы запрос по-прежнему работал, когда я отправляю его в базу данных?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...