Skip to content

This is a method for the head() generic. It is usually translated to the LIMIT clause of the SQL query. Because LIMIT is not an official part of the SQL specification, some database use other clauses like TOP or FETCH ROWS.

Note that databases don't really have a sense of row order, so what "first" means is subject to interpretation. Most databases will respect ordering performed with arrange(), but it's not guaranteed. tail() is not supported at all because the situation is even murkier for the "last" rows.


# S3 method for tbl_lazy
head(x, n = 6L, ...)



A lazy data frame backed by a database query.


Number of rows to return


Not used.


Another tbl_lazy. Use show_query() to see the generated query, and use collect() to execute the query and return data to R.


library(dplyr, warn.conflicts = FALSE)

db <- memdb_frame(x = 1:100)
db %>% head() %>% show_query()
#> <SQL>
#> SELECT `dbplyr_9Iljj7AHPg`.*
#> FROM `dbplyr_9Iljj7AHPg`
#> LIMIT 6

# Pretend we have data in a SQL server database
db2 <- lazy_frame(x = 1:100, con = simulate_mssql())
db2 %>% head() %>% show_query()
#> <SQL>
#> SELECT TOP 6 `df`.*
#> FROM `df`