Expressions de table communes sont définis dans le contexte d'une seule instruction :
WITH cte_name AS (
<cte definition>)
<statement that uses cte>;
Vous pouvez donc faire quelque chose comme :
WITH CTE
AS
(
SELECT * FROM SOMETABLE
)
SELECT * FROM CTE;
ou
WITH CTE
AS
(
SELECT * FROM SOMETABLE
)
UPDATE CTE
SET somefield = somevalue
WHERE id = somekey;