Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Sql Server 2005] - Trasposizione in un unica stringa di dati presenti su più righe

    Come faccio a trasporre in una unica stringa dei dati presenti su piu' righe, senza scrivere nessun programma ma utilizzando solo comandi SQL?

    Esempio:

    TABELLA DI PARTENZA:

    col1 col2
    ------ -------------------------
    001 Roma
    001 Milano
    001 Napoli

    002 Palermo
    002 Bari
    002 Roma

    003 Milano

    ---------------------------------

    TABELLA DI ARRIVO:

    xcol1 xcol2 (*)
    ------ ------------------------
    001 Roma | Milano | Napoli
    002 Palermo | Bari | Roma
    003 Milano

    (*)considerando che le righe per la stessa colonna possono essere molte, ma in totale la stringa creata non supera 8000 caratteri.

    Nota: Si tratta di tabelle denormalizzate, senza chiave primaria, utilizzate per ricerche testuali.

    Grazie

  2. #2
    declare @TableJoin varchar(max)
    SELECT @TableJoin = COALESCE(@TableJoin + ', ', '') + nome_colonna
    from tabella
    where condizione

    select @TableJoin

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select t.col1,
           Left(t.citta,Len(t.citta)-1) as elenco
    		from(select distinct t2.col1,
    			(select (rtrim(t1.col2) + ' | ')
                 from dbo.tabella t1
                 where t1.col1 = t2.col1
                 group by t1.col2
                 order by t1.col2
                 for xml path('')) citta
    			from dbo.tabella t2) as t

  4. #4
    Per il momento ho avuto modo di provare la soluzione suggerita da Nicola75ss, e devo dire che funziona! Ancora non ne ho compreso il funzionamento, per questo motivo mi accingo a studiarla a fondo.

    Appena avrò testato anche la soluzione di Optime, fornirò il mio feedback.

    Ringrazio e saluto
    Forza Sardegna!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.