Atitit jpql ast总结v2 t025.docx 目录 1.1. 多select字段 1 1.2. 多个and条件 (ok) 2 1.3. Select 字段函数(聚合等) 2 1.4. [
Atitit jpql ast总结v2 t025.docx
目录
\-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | \-[RANGE] Node: 'RANGE'
| | \-[IDENT] Node: '\u8868\u683c1'
| \-[SELECT] Node: 'select'
| +-[IDENT] Node: '\u5b57\u6bb52'
| \-[IDENT] Node: '\u5b57\u6bb53'
\-[WHERE] Node: 'where'
\-[EQ] Node: '='
+-[IDENT] Node: '\u5b57\u6bb51'
\-[NUM_INT] Node: '123'
SELECT * FROM 字段3 WHERE 字段1 = 123
-
- 多个and条件 (ok)
- Select 字段函数(聚合等)
- [ORDER BY 子句] 排序
jpql = "select a,b from 表格1 where c=123 and d =456 order by c1 desc ,c2 ,c3 desc";
多个orderby
\-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
+-[DESCENDING] Node: 'desc'
+-[IDENT] Node: 'c2'
+-[IDENT] Node: 'c3'
\-[DESCENDING] Node: 'desc'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | \-[RANGE] Node: 'RANGE'
| | \-[IDENT] Node: '\u8868\u683c1'
| \-[SELECT] Node: 'select'
| +-[IDENT] Node: '\u5b57\u6bb52'
| \-[IDENT] Node: '\u5b57\u6bb53'
+-[WHERE] Node: 'where'
| \-[EQ] Node: '='
| +-[IDENT] Node: '\u5b57\u6bb51'
| \-[NUM_INT] Node: '123'
\-[ORDER] Node: 'order'
\-[IDENT] Node: 'c1'
\-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | \-[RANGE] Node: 'RANGE'
| | \-[IDENT] Node: '\u8868\u683c1'
| \-[SELECT] Node: 'select'
| +-[IDENT] Node: '\u5b57\u6bb52'
| \-[IDENT] Node: '\u5b57\u6bb53'
+-[WHERE] Node: 'where'
| \-[EQ] Node: '='
| +-[IDENT] Node: '\u5b57\u6bb51'
| \-[NUM_INT] Node: '123'
\-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
\-[DESCENDING] Node: 'desc'
直接后面耕者mysql 翻页表达式得了
System.out.println(JqplUtil.Jqpl2sql(hql,"limit 1"));
其中IN中指定的,就是群集成员路径表示,而>、<、AND、IN、LIKE等都是WHERE子句中条件表示式,简单列出一些条件表示式如下:
比较陈述 | =、>、>=、<、<=、<> |
BETWEEN 陈述 | [NOT BETWEEN |
LIKE 陈述 | [NOT] LIKE |
IN 陈述 | [NOT] IN |
NULL 陈述 | IS [NOT] NULL |
EMPTY 陈述 | IS [NOT] EMPTY |
EXISTS 陈述 | [NOT] EXISTS |
\-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | \-[RANGE] Node: 'RANGE'
| | \-[IDENT] Node: '\u8868\u683c1'
| \-[SELECT] Node: 'select'
| +-[IDENT] Node: '\u5b57\u6bb52'
| +-[IDENT] Node: '\u5b57\u6bb53'
| +-[AS] Node: 'as'
| | +-[AGGREGATE] Node: 'sum'
| | | \-[IDENT] Node: 'id'
| | \-[IDENT] Node: 'idAlias1'
| +-[AS] Node: 'as'
| | +-[METHOD_CALL] Node: '('
| | | +-[IDENT] Node: 'kk'
| | | \-[EXPR_LIST] Node: 'exprList'
| | | \-[NUM_INT] Node: '5'
| | \-[IDENT] Node: 'alias2'
| \-[COUNT] Node: 'count'
| \-[ROW_STAR] Node: '*'
+-[WHERE] Node: 'where'
| \-[EQ] Node: '='
| +-[IDENT] Node: '\u5b57\u6bb51'
| \-[NUM_INT] Node: '123'
\-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
\-[DESCENDING] Node: 'desc'
\-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | \-[RANGE] Node: 'RANGE'
| | \-[IDENT] Node: '\u8868\u683c1'
| \-[SELECT] Node: 'select'
| +-[IDENT] Node: '\u5b57\u6bb52'
| +-[IDENT] Node: '\u5b57\u6bb53'
| +-[AGGREGATE] Node: 'sum'
| | \-[IDENT] Node: 'id'
| +-[AS] Node: 'as'
| | +-[METHOD_CALL] Node: '('
| | | +-[IDENT] Node: 'kk'
| | | \-[EXPR_LIST] Node: 'exprList'
| | | \-[NUM_INT] Node: '5'
| | \-[IDENT] Node: 'alias2'
| \-[COUNT] Node: 'count'
| \-[ROW_STAR] Node: '*'
+-[WHERE] Node: 'where'
| \-[EQ] Node: '='
| +-[IDENT] Node: '\u5b57\u6bb51'
| \-[NUM_INT] Node: '123'
\-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
\-[DESCENDING] Node: 'desc'
Exception in thread "main" java.lang.ClassCastExcepti
\-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | \-[RANGE] Node: 'RANGE'
| | \-[IDENT] Node: '\u8868\u683c1'
| \-[SELECT] Node: 'select'
| \-[AGGREGATE] Node: 'sum'
| \-[IDENT] Node: '\u6570\u91cf'
\-[WHERE] Node: 'where'
\-[EQ] Node: '='
+-[IDENT] Node: '\u5b57\u6bb51'
\-[NUM_INT] Node: '123'
\-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | \-[RANGE] Node: 'RANGE'
| | \-[IDENT] Node: '\u8868\u683c1'
| \-[SELECT] Node: 'select'
| +-[IDENT] Node: '\u5b57\u6bb52'
| +-[IDENT] Node: '\u5b57\u6bb53'
| +-[AGGREGATE] Node: 'sum'
| | \-[IDENT] Node: 'id'
| +-[AS] Node: 'as'
| | +-[METHOD_CALL] Node: '('
| | | +-[IDENT] Node: 'kk'
| | | \-[EXPR_LIST] Node: 'exprList'
| | | \-[NUM_INT] Node: '5'
| | \-[IDENT] Node: 'alias2'
| \-[COUNT] Node: 'count'
| \-[ROW_STAR] Node: '*'
+-[WHERE] Node: 'where'
| \-[EQ] Node: '='
| +-[IDENT] Node: '\u5b57\u6bb51'
| \-[NUM_INT] Node: '123'
\-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
\-[DESCENDING] Node: 'desc'
\-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | \-[RANGE] Node: 'RANGE'
| | \-[IDENT] Node: '\u8868\u683c1'
| \-[SELECT] Node: 'select'
| +-[IDENT] Node: '\u5b57\u6bb52'
| +-[IDENT] Node: '\u5b57\u6bb53'
| +-[AGGREGATE] Node: 'sum'
| | \-[IDENT] Node: 'id'
| +-[AS] Node: 'as'
| | +-[COUNT] Node: 'count'
| | | \-[ROW_STAR] Node: '*'
| | \-[IDENT] Node: 'cntAlias'
| \-[AS] Node: 'as'
| +-[METHOD_CALL] Node: '('
| | +-[IDENT] Node: 'Udf'
| | \-[EXPR_LIST] Node: 'exprList'
| | \-[IDENT] Node: 'c11'
| \-[IDENT] Node: 'udfC11As'
+-[WHERE] Node: 'where'
| \-[EQ] Node: '='
| +-[IDENT] Node: '\u5b57\u6bb51'
| \-[NUM_INT] Node: '123'
\-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
\-[DESCENDING] Node: 'desc'
\-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | \-[RANGE] Node: 'RANGE'
| | \-[IDENT] Node: '\u8868\u683c1'
| \-[SELECT] Node: 'select'
| +-[IDENT] Node: '\u5b57\u6bb52'
| +-[IDENT] Node: '\u5b57\u6bb53'
| +-[AGGREGATE] Node: 'sum'
| | \-[IDENT] Node: 'id'
| +-[AS] Node: 'as'
| | +-[COUNT] Node: 'count'
| | | \-[ROW_STAR] Node: '*'
| | \-[IDENT] Node: 'cntAlias'
| \-[METHOD_CALL] Node: '('
| +-[IDENT] Node: 'Udf'
| \-[EXPR_LIST] Node: 'exprList'
| \-[IDENT] Node: 'c11'
+-[WHERE] Node: 'where'
| \-[EQ] Node: '='
| +-[IDENT] Node: '\u5b57\u6bb51'
| \-[NUM_INT] Node: '123'
\-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
\-[DESCENDING] Node: 'desc'
Dbg
-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | \-[RANGE] Node: 'RANGE'
| | \-[IDENT] Node: '\u8868\u683c1'
| \-[SELECT] Node: 'select'
| +-[IDENT] Node: '\u5b57\u6bb52'
| +-[IDENT] Node: '\u5b57\u6bb53'
| +-[AGGREGATE] Node: 'sum'
| | \-[IDENT] Node: 'id'
| +-[AS] Node: 'as'
| | +-[COUNT] Node: 'count'
| | | \-[ROW_STAR] Node: '*'
| | \-[IDENT] Node: 'cntAlias'
| \-[METHOD_CALL] Node: '('
| +-[IDENT] Node: 'Udf'
| \-[EXPR_LIST] Node: 'exprList'
| \-[IDENT] Node: 'c11'
+-[WHERE] Node: 'where'
| \-[EQ] Node: '='
| +-[IDENT] Node: '\u5b57\u6bb51'
| \-[NUM_INT] Node: '123'
\-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
\-[DESCENDING] Node: 'desc'
Atitit 不错的ql选型 jpql
Atitit 常见数据查询语言 GraphQL sql