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

wyświetl pierwsze 3 rekordy w przecinku oddzielone w jednej kolumnie

Zakładam, że „trzy pierwsze” to najczęściej występujące trzy elementy w kolumnie Ekspertyza, ale można to zmienić, jeśli nie o to ci chodziło.

WITH T1 AS (
    SELECT TOP(3) Expertise, COUNT(*) AS cnt
    FROM Expertise
    GROUP BY Expertise
    ORDER BY cnt DESC
), T2 AS (
   SELECT ROW_NUMBER() OVER (ORDER BY cnt DESC) AS rn, Expertise
   FROM T1
)
SELECT (SELECT Expertise FROM T2 WHERE rn = 1) + ',' + 
       (SELECT Expertise FROM T2 WHERE rn = 2) + ',' +
       (SELECT Expertise FROM T2 WHERE rn = 3)

Wynik:

dfdf,.NEt,fgfg


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak selektywnie zaimportować XLS do tabeli SQL Server 2008?

  2. SQL Server, tabele tymczasowe z obcięciem vs zmienna tabeli z usunięciem

  3. Zaszyfruj parametry połączenia w app.config

  4. Czy możemy przekazać parametry do widoku w SQL?

  5. Porządkowanie hierarchii z wyników zapytań rekurencyjnych w SQL 2005