输入SQL时出现dbplyr错误:是否需要不同的SQL语法取决于数据库类型?

时间:2019-12-09 14:47:23

标签: sql r dbplyr

library(tidyverse)
con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
copy_to(con, mtcars)
mtcars2 <- tbl(con, "mtcars")

mtcars3 <- DBI::dbGetQuery(con, "SELECT * FROM mtcars LIMIT 5")
#>    mpg cyl disp  hp drat    wt  qsec vs am gear carb
#> 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
#> 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
#> 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
#> 4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
#> 5 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2

我可以在上面创建模拟SQL连接。然后,我可以使用DBI运行SQL查询,从mtcars中选择前五行,也如上所示。

如果我尝试以其他方式(如下所示)执行此操作,则会收到以下语法错误:

mtcars4 <- DBI::dbGetQuery(con, "SELECT TOP 5 * FROM mtcars")
#> Error: near "5": syntax error

我的语法出了什么问题?

@ErrorJordan之前曾向我解释,“根据您要访问的数据库类型,SQL语法略有不同。” 。这是真正的问题吗?而我该如何把握呢?

0 个答案:

没有答案