Anda hanya dapat memiliki satu pernyataan setelah CTE. Anda dapat, bagaimanapun, mendefinisikan CTE berikutnya berdasarkan yang sebelumnya:
WITH t1 AS (
SELECT a, b, c
FROM table1
)
, t2 AS (
SELECT b
FROM t1
WHERE a = 5
)
SELECT *
FROM t2;
Mengingat Anda mencoba untuk menghitung baris dan mengisi kursor ref dari set hasil yang sama, mungkin lebih tepat untuk melakukan salah satu dari yang berikut:
- buat tampilan
- tahap sementara menghasilkan tabel temp
Akhirnya, jika kueri cukup sederhana, cukup tulis sekali untuk hitungan dan lagi untuk kursor. Kesederhanaan dan keterbacaan mengalahkan prinsip KERING dalam kasus ini.