質問: 下記SQLのようにIN句の中にWITH句を入れることは可能なのでしょうか。 ``` SELECT * FROM customer WHERE id IN ( WITH _t2 AS (SELECT id FROM t2 WHERE id > 1) SELECT * FROM t1 WHERE id1 IN (SELECT id FROM _t2) ); ```
回答: IN区の中にはselect区の様なデータを出力するものが入ります、ですのでWITH区でもデータが 出力される様に書かれていれば、問題はありません。UPDATEで終了するとだめです。同様にINSERT,DELETEも。 XX IN (...)の場合のselectの項目は1つです。複数の選択をする場合は、(XX,YY) IN (...)の様に書く事ができます。ですのでSELECT * FROM t1 の部分は1つで有る必要があります。 `SELECT id1 FROM t1 WHERE id1 IN (SELECT id FROM _t2)`とすれば可能だと思います。