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
Skönt häng på Rapidos öppet hus!

Idag höll Rapido MC, Stockh...

Högsta antalet viltolyckor på tio år

Under 2023 inrapporterades ...

Värva SMC-medlem – chans att vinna MC-resa till Nya Zeeland

Foto: Miles Holden Värva...

Hydet Dirt Drags istället för hillclimb 

Den 3 augusti i år har Hyde...

Dags för 50:e Custom Bike Show

Lördagen den 1 juni är det ...

Varning för potthål

Foto: STR/Hanna Maxstad ...

Snart dags för Distinguished Gentlemans Ride

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

Ola Stenegärd på MC Collection

Sverige har begåvats med et...

Motorcyklisternas och MC-industrins manifest

Under tisdagen presenterade...

Motorcyklisternas och MC-industrins manifest

Under tisdagen presenterade...

Top