子查询因子化 也被称为 公共表表达式(comman tableexpression ),
我们通过使用WITH语句将查询分解为易于理解的块。
举一个简单的例子:
WITH TEST1 AS( SELECT * FROM alias WHERE DEST_URL ='/a-page' ), test2 AS( SELECT * FROM alias WHERE DEST_URL = '/b-page' ) SELECT * FROM TEST1,test2;
?
注意如果定义多个with子句,子句之间必须用逗号分隔,而且必须在子句后面接上查询语句,
而且查询语句必须全部包含你所定义的with子句。否则的话要报错。
?
这样的话,虽然sql代码量没怎么变化,但是可读性和可维护性大大增强了。
?