sql >> Databasteknik >  >> RDS >> Sqlserver

Row_Number() med unionsfråga

Prova detta:

SELECT *, ROW_NUMBER() OVER(ORDER BY Id) ROW_NUM
  FROM (
        select Id, VersionNumber from documents where id=5 
        Union all  
        select Id, VersionNumber from versions where id=5
       ) a
order by VersionNumber desc

FÖR ATT filtrera efter version nummer 5 använd:

SELECT * 
FROM   (SELECT *, 
               Row_number() OVER(ORDER BY versionnumber DESC, id) row_num 
        FROM   (SELECT id, 
                       versionnumber 
                FROM   documents 
                WHERE  id = 5 
                UNION ALL 
                SELECT id, 
                       versionnumber 
                FROM   versions 
                WHERE  id = 5) a) b 
WHERE  version = 5 


  1. Oracle Index och typer av index i Oracle med exempel

  2. Kan inte komma åt MySQL efter att det automatiskt genererade ett tillfälligt lösenord

  3. Är det möjligt att definiera en tidsstämpelkolumn som inte är null och som inte har någon standard och inget speciellt beteende vid uppdatering?

  4. Ska jag undvika COUNT alla tillsammans i InnoDB?