sql >> Databáze >  >> RDS >> Sqlserver

SQL:Agregace řetězců dohromady

WITH Data AS (
    SELECT 1 UserId, 'A' Code 
    UNION ALL 
    SELECT 1, 'C5'
    UNION ALL 
    SELECT 1, 'X'
    UNION ALL 
    SELECT 2, 'V3'
    UNION ALL 
    SELECT 3, 'B'
    UNION ALL 
    SELECT 3, 'D'
    UNION ALL 
    SELECT 3, NULL
    UNION ALL 
    SELECT 3, 'F4'
    UNION ALL 
    SELECT 4, NULL
)
SELECT U.UserId, STUFF((
    SELECT ','+Code FROM Data WHERE Data.UserID = U.UserID FOR XML PATH('')
), 1, 1, '') Code 
FROM (SELECT DISTINCT UserID FROM Data) U

Stačí nahradit Data CTE s názvem vaší tabulky a máte hotovo.



  1. Aktualizace Laravelu 5.4 -- Porušení omezení integrity - Sloupec nemůže být prázdný

  2. MySQL SELECT MIN pro všechny časy, ale vrátit se pouze v případě, že data BETWEEN

  3. Použití sloupce Alias ​​v klauzuli where v ms-sql 2000

  4. Jak optimalizovat logickou replikaci PostgreSQL