Ö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.
Kővári Attila - BI projekt
Új hozzászólás