Wie Sie bereits herausgefunden, die extra) nicht da sein sollte:
Der zweite Fehler, den Sie gemeldet haben, ist, weil Sie versuchen, ein anderes CTE nach Auswahl aus dem obigen CTE zu tun. Sie dürfen das nicht tun, aber beenden Sie das CTE mit einer SELECT
Anweisung.
Wenn Sie irgendwie AnotherCTE für etwas brauchen, könnten Sie beschließen, dass es vor dem SELECT
, indem er erklärt Ihnen bereits getan hat, wie so:
WITH
table1
AS (QUERY1)
, table2
AS (QUERY2)
, myCTE (COLUMNS OF THE CTE)
AS (CTE_QUERY)
,anotherCTE...
SELECT * FROM myCTE
jedoch, die Sie wirklich brauchen würde bedeuten, nicht anotherCTE zu anfangen mit. Wenn Sie es brauchen, bewegen Sie einfach die SELECT
-Anweisung nach unten, um die letzte Anweisung in Ihrer Abfrage zu sein.
Zeigen Sie Ihren tatsächlichen Code oder eine angemessene Verkürzung, die das gleiche Problem hat. –
Was versuchst du eigentlich zu tun? Warum möchten Sie nach Ihrer Auswahl ein anderes CTE? – HoneyBadger
Tatsächlich wird die gesamte Abfrage durch das Zusammenstellen von Unterabfragen in einem C# -Code erstellt, deshalb habe ich viele CTEs, die Abfragen wurden in Oracle mit CONNECT BY geschrieben, so dass ich sie in CTEs umwandelte ... @HoneyBadger – Platus