Questione : Ms SQL 2005, stringa spaccata.

Ciao, ho una colonna con un valore come questa:     v1, v2, v3, v4, v5

And ora che voglio ottenere i dati come questo: il
v1
v2
v3
v4
v5

How può io lo fa con la dichiarazione prescelta?
class= del

Risposta : Ms SQL 2005, stringa spaccata.

In primo luogo generare la funzione sotto…
Allora usare questa domanda:

>> selezionare [colonna] a partire [tabella]

Selezionare X.one, a.*
[Tabella] dalla a
esterno applicare dbo.multirow (a.Text) X

Nota: Potete realmente usare l'una o l'altra delle due funzioni qui sotto, ma poiché sto dando una soluzione (esterna applicar) I ho pensato che abbia colpito la mia versione della spaccatura (using CTE in assistente 2005 di SQL).
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
se il object_id (“dbo.multiRow ") non è nullo
cadere la funzione dbo.multiRow
ANDARE
generare la funzione dbo.multiRow (@data varchar (massimo), @delims varchar (10))
i ritorni pospongono come ritorno
con cte (uno, rem)
As
(
prescelto
	rtrim (ltrim (LASCIATO (@data, charindex (@delims, @data+@delims) - 1))),
	sottostringa (@data, charindex (@delims, @data+@delims) +LEN (@delims+'. ') - 1, LEN (@data))
dove il nullif (@data, '') non è nullo
unione tutta
prescelto
	rtrim (ltrim (LASCIATO (rem, charindex (@delims, rem+@delims) - 1))),
	sottostringa (rem, charindex (@delims, rem+@delims) +len (@delims+'. ') - 1, LEN (rem))
da cte
dove il nullif (rem, '') non è nullo
)
selezionare uno a partire da cte in cui il nullif (uno, '') non è nullo
ANDARE
Altre soluzioni  
 
programming4us programming4us