Package Exports
- sql92-json
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (sql92-json) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
SQL92-JSON
can stringify a JSON into a SQL and viceversa parse a SQL statement and serialize it into a JSON
Installation | API | Examples | Recipes | References | License
Installation
Using npm
With npm do
npm install sql92-jsonUsing a CDN
Add this to your HTML page
<script src="https://unpkg.com/sql92-json/dist/sql92-json.min.js"></script>API
Both CommonJS and ES6 imports are supported. Code snippets below use
require, it is also possible to do
import { parse, stringify } from 'sql92-json'stringify
Convert a JSON to SQL
Both require('sql92-json').stringify and require('sql92-json/stringify') are valid.
var json2sql = require('sql92-json').stringify
console.log(json2sql({ SELECT: ['*'], FROM: ['revenue'] }))
//
// SELECT *
// FROM revenue
//parse
Convert an SQL to JSON
Both require('sql92-json').parse and require('sql92-json/parse') are valid.
var sql2json = require('sql92-json').parse
console.log(sql2json('SELECT * FROM revenue')
// {
// SELECT: ['*'],
// FROM: ['revenue']
// }Recipes
Examples
See examples folder where every .json file has its homonym .sql.
See for example the following example JSON and its corresponding SQL.
{
"SELECT": [ { "COUNT": "*", "AS": "num" } ],
"FROM": [
{
"SELECT": ["*"],
"FROM": ["mytable"],
"WHERE": [
"yyyymmdd", { "=": 20170101 },
{ "AND": [ "country", { "IN": ["IT", "US"] } ] },
{ "AND": [
"categoryid", { "BETWEEN": [100, 200] },
{ "OR": [ "productname", { "!=": "'icecream'" } ] }
] }
]
}
]
}SELECT COUNT(*) AS num
FROM (
SELECT *
FROM mytable
WHERE yyyymmdd = 20170101
AND country IN ( 'IT', 'US' )
AND (
categoryid BETWEEN 100 AND 200
OR productname != 'icecream'
)
)References
sql1992.txt was downloaded from here.
