9.21 修改 SQL 语句中的过滤条件
修改 SQL 语句中的过滤条件。
下面的 SQL 语句用于选出销售部门收入大于 10000 的员工,将过滤条件中的部门修改为研发部门。
select
EID,NAME,SURNAME,DEPT,SALARY
from
Employee
where
DEPT='Sales' and SALARY>10000
使用函数 s.sqlparse(part) ,拆分 SQL 成为各个部分构成的序列,有 part 参数理解为用 part 替换 SQL 的相应部分返回新 SQL。 选项 @w 表示 where 语句,@s 表示 select 语句。
脚本:
A | |
---|---|
1 | select EID,NAME,SURNAME,DEPT,SALARY from Employee where DEPT=‘Sales’ and SALARY>10000 |
2 | =A1.sqlparse@w() |
3 | =A2.split@t(“and”) |
4 | =A3.pselect(like(~,“DEPT*”)) |
5 | =A3(A4)=“DEPT=‘R&D’” |
6 | =A3.concat("and") |
7 | =A1.sqlparse@w(A6) |
A1 定义 SQL 常量
A2 使用 s.sqlparse() 函数的 @w 选项,取出 where 条件
A3 使用 s.split() 函数拆分 where 条件,选项 @t 表示每段进行 trim
A4 选出部门的条件
A5 将部门条件替换为选出研发部门
A6 将条件序列用 and 连接
A7 使用 s.sqlparse(part) 函数的 @w 选项,替换 where 条件
运行结果:
Value |
---|
select EID,NAME,SURNAME,DEPT,SALARY from Employee where DEPT=‘R&D’ and SALARY>10000 |