Skip to main content

Keyword Casing

Controls the case of SQL keywords (SELECT, FROM, WHERE, etc.).

Community conventions:

  • UPPERCASE: Traditional SQL, ANSI standard, most enterprise tools (Oracle, DB2, TSQL)
  • lowercase: Modern data engineering (dbt, PostgreSQL community, DuckDB)
  • PRESERVE: Keep original casing from source code

Interaction with other options:

  • functionCase is independent — you can have UPPER keywords with lower function names
  • dataTypeCase is independent — you can have lower keywords with UPPER data types

Uppercase keywords (default ANSI)

select a from t where x > 1
select a from t where x > 1

Lowercase keywords

SELECT a FROM t WHERE x > 1
select a from t where x > 1

Preserve keyword case

Select a From t Where x > 1
Select a From t Where x > 1

Uppercase identifiers (default ANSI)

select myCol from myTable
select mycol from mytable

Preserve identifiers

select MyCol from MyTable
select MyCol from MyTable

Quoted identifiers preserved

select "MyCol" from "MyTable"
select "mycol" from "mytable"

Lowercase identifiers (postgres-style)

SELECT MyCol FROM MyTable
select mycol from mytable

PostgreSQL-style defaults

PostgreSQL defaults: lower keywords, lower identifiers.

SELECT a, b FROM t WHERE x > 1
select a, b from t where x > 1

Mixed case keywords normalized

Inconsistent casing from hand-written SQL is normalized.

Select A, b FROM t Where X > 1 Group By a Order By b
select a, b from t where x > 1 group by a order by b