sql >> Database >  >> RDS >> Sqlserver

CREATE VIEW moet het enige statement in de batch zijn

Zoals de fout zegt, de CREATE VIEW statement moet het enige statement in de querybatch zijn.

U hebt in dit scenario twee opties, afhankelijk van de functionaliteit die u wilt bereiken:

  1. Plaats de CREATE VIEW vraag aan het begin

    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. Gebruik GO na de CTE en vóór de CREATE VIEW vraag

    -- Optie #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. Hoe de timing van SQL-query's te schatten?

  2. Wat is MariaDB Enterprise en hoe beheer je het met ClusterControl?

  3. PostgreSQL proceduretaal C niet gevonden

  4. PostgreSQL-query wordt sneller uitgevoerd met indexscan, maar engine kiest hash-join