Összetett kódok szétdarabolása


A minap az adattárház építése során a következő feladatot kellett megoldanom: szét kellett darabolnom egy kódot adott szeparátor mentén 3 különböző darabra, és azokat kitenni 3 különböző oszlopba. A kód így nézet ki:

'AA\BBB\CCCC'

Hogyan tudom mindezt egyszerűen megtenni? Hát a PARSENAME függvénnyel. Bár nem erre találták ki, de tökéletesen megoldható vele a probléma.

 

Declare @STR varchar(256)

Set @STR = 'AA\BBB\CCCC'

select
parsename(replace(@STR, '\', '.'), 3) as 'AA',
,parsename(replace(@STR, '\', '.'), 2) as 'BBB' ,
,parsename(replace(@STR, '\', '.'), 1) as 'CCCC'

Ezt a trükköt egy fórumban olvastam valamikor és megragadott az egyszerűsége. Szeretem az ilyen megoldásokat. Nincs ciklus, nincsenek agyonerőszakolt karakterfüggvények.

Elválasztó

Már készül a következő cikk. Kérjen értesítést a megjelenéséről itt.

|

Kővári Attila
2006. január 21.
Címkék: