sql >> Database teknologi >  >> RDS >> Sqlserver

Ingen understøttelse af OVER i MS SQL Server 2005?

Har du prøvet at sætte et semikolon foran din With udmelding? (f.eks. ;With q As )

Nogle generelle bemærkninger:

  1. Du skal køre dette i en forespørgsel, ikke designeren. Det lyder som om du har rettet det.
  2. Tæll kolonnerne i stedet for at bruge * . Dvs., i eksemplet nedenfor erstatter Col1, Col2 med de faktiske kolonner, du vil have foranstillet af tabellen, hvorfra de kom.
  3. Indsæt use DatabaseName øverst i dit script efterfulgt af et linjeskift efterfulgt af GO , efterfulgt af endnu et linjeskift.
  4. Hvis den eneste sætning før With sætningen er GO mellem din use sætningen og forespørgslen, så er der ikke behov for semikolon, da det er den første sætning i batchen.

use DatabaseName
GO
WITH q AS
        (
        SELECT  TableName.Col1, TableName.Col2,...
            , ROW_NUMBER() OVER (PARTITION BY dbo.[1_MAIN - Contacts].Contact_ID 
                                                        ORDER BY dbo.[1_MAIN - Contacts].Contact_ID ) AS rn
        FROM dbo.[1_MAIN - Contacts]
            INNER JOIN dbo.Referral
                ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.Referral.Referral_ID
            INNER JOIN dbo.prov_training_records
                ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.prov_training_records.Contact_ID
            LEFT OUTER JOIN dbo.Resource_Center
                ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.Resource_Center.Contact_ID
            FULL OUTER JOIN dbo.Providers
                ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.Providers.Contact_ID
        )
SELECT  *
FROM    q


  1. Se SQL Server Agent-jobhistorik med SSMS

  2. Sådan inkluderes ekskluderede rækker i RETURNING from INSERT ... ON CONFLICT

  3. Brug @@IDENTITY til at returnere den sidst indsatte identitetsværdi i SQL Server

  4. Sådan forbedres ydeevnen for SQLite-databasen til Android