Genau wie der Fehler sagt, die CREATE VIEW
-Anweisung muss die einzige Anweisung im Abfragestapel sein.
Sie haben in diesem Szenario zwei Optionen, abhängig von der gewünschten Funktionalität:
-
Platzieren Sie
CREATE VIEW
Abfrage am AnfangCREATE VIEW showing as select tradename, unitprice, GenericFlag from Medicine; with ExpAndCheapMedicine(MostMoney, MinMoney) as ( select max(unitprice), min(unitprice) from Medicine ) , findmostexpensive(nameOfExpensive) as ( select tradename from Medicine, ExpAndCheapMedicine where UnitPrice = MostMoney ) , findCheapest(nameOfCheapest) as ( select tradename from Medicine, ExpAndCheapMedicine where UnitPrice = MinMoney )
-
Verwenden Sie
GO
nach dem CTE und vorCREATE VIEW
Abfrage-- Möglichkeit Nr. 2
with ExpAndCheapMedicine(MostMoney, MinMoney) as ( select max(unitprice), min(unitprice) from Medicine ) , findmostexpensive(nameOfExpensive) as ( select tradename from Medicine, ExpAndCheapMedicine where UnitPrice = MostMoney ) , findCheapest(nameOfCheapest) as ( select tradename from Medicine, ExpAndCheapMedicine where UnitPrice = MinMoney ) GO CREATE VIEW showing as select tradename, unitprice, GenericFlag from Medicine;