描述:
将SQL语句拆分为序列。
语法:
sql.sqlparse(part)
备注:
按照select语句、from语句(包含join部分)、where条件、group by语句、having语句、order by语句顺序将sql拆分成序列,拆分后的语法参数作为序列成员,结果返回序列。
有part参数时,将part替换源SQL中的对应语法参数,结果返回新SQL。
参数:
sql |
sql语句。 |
part |
sql串,替换到源sql中,需要配合选项使用。 |
选项:
@s |
select语句。 |
@f |
from语句,包含join部分。 |
@w |
where条件。 |
@g |
group by语句。 |
@h |
having语句。 |
@o |
order by语句。 |
@a |
多个项目时再次拆成序列,where和having条件中根据AND分隔。 |
返回值:
序列/SQL语句
示例:
|
A |
|
1 |
select emp.EID,emp.NAME,emp.BIRTHDAY,emp.SALARY,dep.DEPT,dep.MANAGER from EMPLOYEE emp left join DEPARTMENT dep on emp.DEPT=dep.DEPT where emp.EID<100 and dep.DEPT='R&D' order by emp.SALARY ,emp.EID |
|
2 |
=A1.sqlparse() |
将SQL语句的各个语法内容拆分为序列成员,默认返回语法内容分别为select语句、from语句、where条件、group by语句、having语句、order by语句,其中SQL语句中不存在的语法则返回null。 |
3 |
=A1.sqlparse@s() |
拆分SQL语句后返回select语法内容。 |
4 |
=A1.sqlparse@f() |
拆分SQL语句后返回from语法内容。 |
5 |
=A1.sqlparse@w() |
拆分SQL语句后返回where条件。 |
6 |
=A1.sqlparse@o() |
拆分SQL语句后返回order by语法内容。 |
7 |
=A1.sqlparse@a() |
拆分SQL语句,当某个语法部分包含多个项目时,继续拆分。 |
8 |
SELECT STUDENTID,sum(SCORE) FROM SCORES group by studentid having sum(score)>460 |
|
9 |
=A8.sqlparse@g() |
拆分SQL语句后返回group by语法内容。 |
10 |
=A8.sqlparse@h() |
拆分SQL语句后返回having语法内容。 |
11 |
select * from dept |
|
12 |
=A11.sqlparse() |
|
13 |
=A11.sqlparse@s("deptid") |
当有part参数时,替换对应部分的语法内容,此处将select语句内容由“*”改为deptid。 |
14 |
=A11.sqlparse@f("sales") |
当有part参数时,替换对应部分的语法内容,此处将select语句内容由dept改为sales。 |
15 |
select EID,NAME,GENDER from ( select * from EMPLOYEE where salary>10000) |
使用from子查询的sql串。 |
16 |
=A15.sqlparse() |
|
17 |
SELECT P.LastName, P.FirstName, O.OrderNo FROM Persons P INNER JOIN Orders O ON P.Id_P = O.Id_P ORDER BY P.LastName |
|
18 |
=A17.sqlparse() |
From语法内容中包含Join部分: |