Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL:Използвайте изчислени полета от SELECT в клаузата WHERE

Използвайте CTE (общ табличен израз) - нещо като "вграден" изглед само за следващия израз:

;WITH MyCTE AS
(
    SELECT 
        RANK() OVER(PARTITION BY XXX ORDER BY yyy,zzz,oooo) as ranking, 
        * 
    FROM SomeTable
) 
SELECT * 
FROM MyCTE
WHERE ranking = 1 --> this is now possible!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свързване на SQL Server 2008 към Outlook Calendar?

  2. Актуализиране на нулева стойност на колона от ненулева стойност в предишния ред

  3. Рекурсивна заявка за намиране на родителския запис

  4. T-SQL:Избор на колона въз основа на MAX (друга колона)

  5. Как да конвертирате от един формат на дата в друг в Microsoft SQL сървър?