Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

visualizzare i primi 3 record in una virgola separati in una colonna

Presumo che i "primi tre" siano i tre elementi più frequenti nella colonna Competenza, ma questo può essere modificato se non è quello che intendevi.

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)

Risultato:

dfdf,.NEt,fgfg