Format whitespace in a SQL query to make it more readable
npm install cl-sql-formatter;.
sh
npm install sql-formatter
`
Usage as library
`js
import { format } from 'sql-formatter';
console.log(format('SELECT * FROM tbl'));
`
This will output:
`sql
SELECT
*
FROM
tbl
`
You can also pass in configuration options:
`js
format('SELECT * FROM tbl', {
language: 'spark', // Defaults to "sql" (see the above list of supported dialects)
indent: ' ', // Defaults to two spaces
uppercase: bool, // Defaults to false (not safe to use when SQL dialect has case-sensitive identifiers)
linesBetweenQueries: 2, // Defaults to 1
});
`
$3
`js
// Named placeholders
format("SELECT * FROM tbl WHERE foo = @foo", {
params: {foo: "'bar'"}
}));
// Indexed placeholders
format("SELECT * FROM tbl WHERE foo = ?", {
params: ["'bar'"]
}));
`
Both result in:
`
SELECT
*
FROM
tbl
WHERE
foo = 'bar'
`
Usage from command line
The CLI tool will be installed under sql-formatter
and may be invoked via npx sql-formatter:
`sh
sql-formatter -h
`
`
usage: sql-formatter [-h] [-o OUTPUT] [-l {db2,mariadb,mysql,n1ql,plsql,postgresql,redshift,spark,sql,tsql}]
[-i N | -t] [-u] [--lines-between-queries N] [--version] [FILE]
SQL Formatter
positional arguments:
FILE Input SQL file (defaults to stdin)
optional arguments:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
File to write SQL output (defaults to stdout)
-l {db2,mariadb,mysql,n1ql,plsql,postgresql,redshift,spark,sql,tsql},
--language {db2,mariadb,mysql,n1ql,plsql,postgresql,redshift,spark,sql,tsql}
SQL Formatter dialect (defaults to basic sql)
-i N, --indent N Number of spaces to indent query blocks (defaults to 2)
-t, --tab-indent Indent query blocks with tabs instead of spaces
-u, --uppercase Capitalize language keywords
--lines-between-queries N
How many newlines to insert between queries (separated by ";")
--version show program's version number and exit
`
By default, the tool takes queries from stdin and processes them to stdout but
one can also name an input file name or use the --output option.
`sh
echo 'select * from tbl where id = 3' | sql-formatter -u
`
`sql
SELECT
*
FROM
tbl
WHERE
id = 3
`
Usage without NPM
If you don't use a module bundler, clone the repository, run npm install and grab a file from /dist directory to use inside a