Fråga : Ms SQL 2005, splittring stränger.

Hi jag har en kolonn med en värdera att gilla denna:     v1 v2, v3, v4, v5

And, nu som jag önskar att få datanågot liknande denna:
v1
v2
v3
v4
v5

How kan mig gör den med valt meddelande?
" klar "

Svar : Ms SQL 2005, splittring stränger.

Skapa först den nedanföra fungera…,
Använd därefter denna query:

>> valt [kolonn] från [bordlägga],

Välj X.one, a.*
Från [bordlägga], a
yttre applicera dbo.multirow (a.Text) X

Notera: Du kan faktiskt använda endera av tvåna fungerar nedanfört, men, sedan I-förmiddagen som ger en yttre lösning (applicera), I tänkte att jag skulle, peta min version av splittringen (using CTE i SQL-serveren 2005).
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
om object_id (”dbo.multiRow”) inte är ogiltig
tappa fungerar dbo.multiRow
GÅ
skapa fungerar dbo.multiRow (den varchar @dataen (max), varchar @delims (10))
retur bordlägger som retur
med cte (en, rem)
som
(
valt
	rtrim (LÄMNAD, ltrim ((@dataen, charindex (@delims, @data+@delims) - 1))),
	substring (@data, charindex (@delims, @data+@delims) +LEN (@delims+'. ') - 1, LEN (@data))
var nullif (@data, '') inte är ogiltig
all union
valt
	rtrim (LÄMNAD, ltrim ((rem, charindex (@delims, rem+@delims) - 1))),
	substring (rem, charindex (@delims, rem+@delims) +len (@delims+'. ') - 1, LEN (rem))
från cte
var nullif (rem, '') inte är ogiltig
)
välj en från cte var nullif (en, '') inte är ogiltig
GÅ
Andra lösningar  
 
programming4us programming4us