1 with 可以替代連接 讓sql 更簡潔 邏輯更清晰
2 with 語句備份要刪除的語句
WITH delete_rows AS ( DELETE FROM company WHERE salary < 10000 RETURNING * ) INSERT INTO company1 ( SELECT * FROM delete_rows );
注意:不要忘記加上returning * company1 表中必須 包含 company 中的字段
WITH RECURSIVE T AS ( SELECT ID , NAME, parent_id FROM "f_department_2WIQRCZ" WHERE ID = 2 UNION ALL SELECT K .ID, K.NAME, K.parent_id FROM "f_department_2WIQRCZ" K, T WHERE T.ID = K.parent_id ) SELECT * FROM T;
以上:向下遞歸查詢部門
with recursive T AS ( select id,name,parent_id from "f_department_2WIQRCZ" where id = 10 --起始節點 union all select K.id, K.name, K.parent_id from "f_department_2WIQRCZ" K , T where K.ID = T.parent_id ) select * from T
以上:向上遞歸查詢部門