SQL Replace

McB

Moderat(or)
Gick med
6 Mar 2003
Ort
Göteborg
Hoj
Senare...
Jag har en stored procedure som hämtar data från en databas och stuvar in den i en annan databas. Ser ut såhär:

Code:
BEGIN
			SET @Serialnumber=UPPER(@Serialnumber)		
			UPDATE Tab_Loggbok SET 
				Serienr=@Serialnumber, 
				RLageH_W=@RStateHW, 
				Huvudfel=@MainFailureFaultyProduct, 
				Position=@MainFailurePosition, 
				Felsokning=@MainFailureSymptomDescription, 
				Felbeskrivning=@MainFailureCauseDescription,
				Atgard=@MainFailureAction,
				FrRepDat=CONVERT(VARCHAR, GETDATE(), 112) 
			WHERE
				RCnr=@RCID
	
END

Allt funkar bra, men jag skulle vilja skala bort alla mellanslag från variabeln @MainFailureFaultyProduct när den skickas vidare. Mellanslagen ligger aldrig i början eller slutet, så jag kan inte använda trim. Har försökt med detta...

Code:
Huvudfel=REPLACE(@MainFailureFaultyProduct,' ','')

...Men mellanslagen är kvar. Är det överhuvudtaget möjligt att använda replace-funktionen på lokala variabler?

Förslag?
 

morlock

1080p till folket!
Gick med
7 Oct 2004
Ort
Sundsvall
Hoj
Hojlös =/
Du måste skifta efter alla nästkommande tecken i strängen, så nej. Replace går inte att använda.

Skapa en ny dit du plockar ut allt förutom mellanslag.
 

McB

Moderat(or)
Gick med
6 Mar 2003
Ort
Göteborg
Hoj
Senare...
morlock skrev:
2314000 Du måste skifta efter alla nästkommande tecken i strängen, så nej. Replace går inte att använda.

Skapa en ny dit du plockar ut allt förutom mellanslag.

Fan också. Går det inte på något annat vis? Vill inte in och härja i någon annans kod bara för att hänvisa till en annan sp.
 

McB

Moderat(or)
Gick med
6 Mar 2003
Ort
Göteborg
Hoj
Senare...
morlock skrev:
2314747 Kan du inte ersätta mellanslagen med ett punkt eller annat tecken då?

Nej, dessvärre inte. Om jag inte kan få bort dem får de helt enkelt vara kvar. Jag meddelar att det kostar för mycket att mickla bort dem. :)

Tack för hjälpen i alla fall!
 

Zormin

Aldrig under 10.000 rpm
Gick med
6 Mar 2003
Ort
Linköping
Hoj
ZX-10R
Testade lite i en av mina databaser. Det funkar hur bra som helst.

declare @sTitle varchar(20)
set @sTitle = 'En rad med mellanslag'
update node set title=replace(@sTitle, ' ', '') where node_id = 4


Antar att det är SQL Server vi pratar om (med tanke på getdate)?

Edit:
För övrigt borde du kunna anropa replace precis som du gör med upper i set-raden innan updaten. Eller också flyttar du ner upper till själva updaten

BEGIN
UPDATE Tab_Loggbok SET
Serienr=UPPER(@Serialnumber),
...
 
Last edited:

McB

Moderat(or)
Gick med
6 Mar 2003
Ort
Göteborg
Hoj
Senare...
Zormin skrev:
2316283 Testade lite i en av mina databaser. Det funkar hur bra som helst.

declare @sTitle varchar(20)
set @sTitle = 'En rad med mellanslag'
update node set title=replace(@sTitle, ' ', '') where node_id = 4


Antar att det är SQL Server vi pratar om (med tanke på getdate)?

Edit:
För övrigt borde du kunna anropa replace precis som du gör med upper i set-raden innan updaten. Eller också flyttar du ner upper till själva updaten

BEGIN
UPDATE Tab_Loggbok SET
Serienr=UPPER(@Serialnumber),
...

Skall prova detta imorgon. Tack!
 

McB

Moderat(or)
Gick med
6 Mar 2003
Ort
Göteborg
Hoj
Senare...
Måste ha glömt något när jag provade första gången, för nu gjorde jag exakt likadant...

Code:
Huvudfel=REPLACE(@MainFailureFaultyProduct, ' ', ''),

Och det funkade galant!
 
Nyheter
Eldrivna Oruga Unitrack

Oruga Unitrack, en motorcyk...

Distinguished Gentlemans Ride 2024 körs 19 maj

Söndag 19 maj är det dags f...

Boka provkörning under Start2Ride nu

Under helgen arrangerar mot...

Dags för 2024 års Start2Ride

Kommande helg arrangerar mo...

Härlig uppslutning på kortegen i Sydnärke!

Den traditionsenliga mc-kor...

Eldrivna Oruga Unitrack

Oruga Unitrack, en motorcyk...

Circuit de Barcelona-Catalunya storsatsar

Gran Premi de Catalunya Mot...

Lunchhälsning från Merzouga!

Bästa ökenguiden, Jordi Arc...

Rapport från Marocko: Dag 1

Vi bekantar oss med lokalin...

Godmorgon från Erfoud!

Top