blob: 89c3133e8373983212e8f760c1150d23087c07fa [file] [log] [blame] [view]
# Select Syntax
```sql
SELECT [ DISTINCT ]
{ * | expr (, expr )* }
FROM { Table | SubQuery | Match }
[ WHERE boolExpr ]
[ Group By expr (',' expr)* ]
[ HAVING boolExpr ]
[ ORDER BY (expr [ASC|DESC]) (',' expr [ASC|DESC])* ]
[ LIMIT number ]
```
# Example
## Select
```sql
SELECT id, name, age FROM user;
SELECT DISTINCT id, name, age FROM user;
SELECT price * 10 FROM trade;
```
## From
### From Table
```sql
SELECT id, name, age FROM user where id > 10
```
### From SubQuery
```sql
SELECT id, name, age
FROM (
SELECT * FROM user where id > 10
)
```
### From Match
```sql
SELECT
a_id,
weight,
b_id
FROM (
MATCH (a) -[e:knows]->(b:person where b.id != 1)
RETURN a.id as a_id, e.weight as weight, b.id as b_id
)
```
More information about match, please see the Match Syntax.
## Where
```sql
SELECT id, name, age FROM user where id > 10;
SELECT DISTINCT id, name, age FROM user where id > 10;
SELECT price * 10 FROM trade where price > 20;
```
## Group By
```sql
SELECT age, count(id) as cnt FROM user GROUP BY age;
SELECT type, max(age), min(age), avg(age) FROM user GROUP BY type;
```
## Having
```sql
SELECT age, count(id) as cnt FROM user GROUP BY age Having count(id) > 10;
```
## Order By
```sql
SELECT * from user order by age;
SELECT age, count(id) as cnt FROM user GROUP BY age Having count(id) > 10 Order by cnt;
```
## Limit
```sql
SELECT * from user order by age limit 10;
SELECT * from user limit 10;
```