sql >> Databasteknik >  >> RDS >> Sqlserver

Lagrad procedur, vänster koppling ger mig dubbletter av rader, men jag vill ha topp(1) rad för varje post med samma ID

Först letade jag efter något som inte ger mig nollkolumner med vänster koppling, så jag använde,

coalesce(TableC.SomeColumn, -1) As SomeColumnHeHe

Sedan stötte jag på ett problem där jag bara behövde välja topp 1 från vänster koppling, så jag använde OUTTER APPLY, som visas nedan,

SELECT Top(1)
    TableA.*,
        TableB.*,
        someFunction(TableA.ID),
        coalesce(TableC.someColumn, -1) As SomeColumnExample,
        TempTable.IDA
 FROM 
    TableA INNER JOIN TableB ON TableA.ID = TableB.IDA
    OUTER APPLY
         (SELECT TOP(1) * FROM TableC where TableC.IDA = TableA.IDA Order By DateAdded Desc )  As TempTable

Where TableA.ID = @ParaID
Order By TableC.DateTime Desc


  1. Varför mysqli_real_escape_string har ett anslutningsobjekt som en första parameter

  2. fyll i en markeringsruta med php mysql

  3. Finns det någon escape-syntax för psql-variabel inuti PostgreSQL-funktioner?

  4. Ogiltigt standardvärde för "Datum"