Skip to content

SELECT Queries

-- Using SQL-like syntax
select * from users
-- Transpiled SQL
SELECT * FROM users
-- Selects all columns from the table
select User
-- Transpiled SQL
SELECT * FROM User
select User { id, name, email }
-- Transpiled SQL
SELECT id, name, email FROM User

Use the filter keyword to add WHERE conditions:

-- Simple filter
select User { name, email } filter active = true
-- Transpiled SQL
SELECT name, email FROM User WHERE active = true
-- String comparison
select User { name } filter role = "admin"
-- Transpiled SQL
SELECT name FROM User WHERE role = 'admin'

BQL also supports the traditional where keyword:

select * from users where age >= 18
-- Transpiled SQL
SELECT * FROM users WHERE age >= 18

Use order by to sort results:

-- Ascending (default)
select User { name } order by name
-- Descending
select User { name } order by created_at desc
-- Transpiled SQL
SELECT name FROM User ORDER BY created_at DESC
select User { name } order by score desc limit 10
-- Transpiled SQL
SELECT name FROM User ORDER BY score DESC LIMIT 10
select User {
id,
name,
email,
score
}
filter active = true
order by score desc
limit 10
-- Transpiled SQL
SELECT id, name, email, score
FROM User
WHERE active = true
ORDER BY score DESC
LIMIT 10