sql >> Databasteknik >  >> RDS >> Sqlserver

CREATE VIEW måste vara den enda satsen i batchen

Precis som felet säger, CREATE VIEW satsen måste vara den enda satsen i frågebatchen.

Du har två alternativ i det här scenariot, beroende på vilken funktion du vill uppnå:

  1. Placera CREATE VIEW fråga i början

    CREATE 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
        )
    
  2. Använd GO efter CTE och före CREATE VIEW fråga

    -- Alternativ #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;
    


  1. PostgreSQL FEL:underfrågan i FROM kan inte hänvisa till andra relationer på samma frågenivå

  2. Skapa beräknad kolumn med hjälp av data från en annan tabell

  3. C#, MySQL - ödesdigert fel påträffades under kommandoexekvering- Kontrollerade andra lösningar, något jag saknar

  4. Den använda tabelltypen stöder inte SPATIAL-index