Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Row_Number() z zapytaniem składającym

Spróbuj tego:

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

ABY filtrować według wersji numer 5 użyj:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znaki akcentowane nie są poprawnie importowane za pomocą funkcji BULK INSERT

  2. Zabawne tweety o życiu DBA

  3. Wywołaj procedurę składowaną w SQL CTE

  4. Alternatywa dla używania zmiennych lokalnych w klauzuli where

  5. Obliczanie wartości przy użyciu poprzedniej wartości wiersza w T-SQL