In Oracle SQL Developer, sto usando una clausola WITH, in questo (semplificato) modo:SQL: clausola WITH con parametri?
WITH
foos AS
SELECT *
FROM my_table
WHERE field = 'foo'
bars AS
SELECT *
FROM my_table
WHERE field = 'bar'
SELECT *
FROM foo
INNER JOIN bar
ON foo.id = bar.id
Vorrei essere in grado di scomporre il 'foo' e archi 'bar', in modo che io può avere qualcosa di simile:
WITH
subq(my_arg) AS
SELECT *
FROM my_table
WHERE field = my_arg
SELECT *
FROM subq('foo')
INNER JOIN subq('bar')
ON subq('foo').id = subq('foo').id
Perché, foos
e bars
sono in realtà molto più grande di questo, e ci sono il dado solo due di loro, così si sta facendo un po 'difficile da mantenere.
So che questo potrebbe non essere possibile con una clausola WITH, ma quale sarebbe la soluzione migliore per evitare di scrivere questa subquery più volte? Questo potrebbe essere in realtà abbastanza semplice, ma sono abbastanza nuovo per SQL ...
Grazie per il vostro aiuto.