是否可以有2个SQL查询,并将第1个输出作为第2个输入?
我的意思是,我想使用第一个SQL查询,也许像这样smthg?:
rs <- dbSendQuery(con, "Select distinct X From K.Tabelle order by X asc")
data <- fetch(rs)
因此,我可以从列X获得uniqe值的列表。此外,我想将此列表用作selectInput("select1",...)
shiny
窗口小部件中的一个选项(如果我也可以选择获取所有值,这将在第二个/最后一个查询中进一步使用:
query <- reactive( sprintf("select * from K.Tabelle",
" where", input$tablename, "=", input$select1, sep="")
有可能吗?我不知道我应该把第一个查询放在哪里?在服务器端也是如此?
我的代码:
library(ROracle)
library(shiny)
get_data <-
function(query){
on.exit(dbDisconnect(con)) ## important to close connection
con <- dbConnect(dbDriver("Oracle"),"xx",username="user",password="pwd")
dbGetQuery(con,query)
}
server <- shinyServer(
function(input, output) {
query <- reactive( sprintf("select * from K.Tabelle",
" where", input$tablename, "=", input$select1, sep="")
## simply displaying reactive inputs
output$table <- renderTable(
get_data(query())
)
})
ui_panel <-
tabPanel("Test",
sidebarLayout(
sidebarPanel(
),
mainPanel(
tableOutput("table")
)
)
)
ui <- shinyUI(navbarPage("Test",ui_panel))
runApp(list(ui=ui,server=server))
感谢tipps