Quoting identifiers
To use identifiers that are otherwise invalid, surround them with backticks. Depending on the dialect, these will remain as backticks or be converted to double-quotes.
PRQL
prql target:sql.mysql
from employees
select `first name`
SQL
SELECT
`first name`
FROM
employees
PRQL
prql target:sql.postgres
from employees
select `first name`
SQL
SELECT
"first name"
FROM
employees
PRQL
from `dir/*.parquet`
SQL
SELECT
*
FROM
"dir/*.parquet"
BigQuery also uses backticks to surround project & dataset names (even if valid identifiers) in the SELECT
statement:
PRQL
prql target:sql.bigquery
from `project-foo.dataset.table`
join `project-bar.dataset.table` [==col_bax]
SQL
SELECT
`project-foo.dataset.table`.*,
`project-bar.dataset.table`.*
FROM
`project-foo.dataset.table`
JOIN `project-bar.dataset.table` ON `project-foo.dataset.table`.col_bax = `project-bar.dataset.table`.col_bax
Quoting schemas
Note
This is currently not great and we are working on improving it; see https://github.com/PRQL/prql/issues/1535 for progress.
If supplying a schema without a column — for example in a from
or join
transform, that also needs to be a quoted identifier:
PRQL
from `music.albums`
SQL
SELECT
*
FROM
music.albums