Just nu i M3-nätverket
Gå till innehåll

WHILE loop


Axi

Rekommendera Poster

Hej!

Jag är inte bra på SQL men ibland behöver jag hämta lite data från en databas. 

I synnerhet harjag aldrig använt loopar förut så självklart fixar jag inte denna utan hjälp.

 

Grundtanken är att jag ska söka efter en textsträng i en kolumn, och om den hittas, ska värdet från en annan kolumn på samma rad presenteras.  Ganska basic.

OM den däremot INTE hittas, vill jag att söksträngen kortas med ett tecken från höger sida, och genomför sökningen igen. Tills dess att ett värde är funnet eller att textsträngen tar slut.

Notera att jag inte har behörighet att skriva i databasen, på sin höjd kan jag skapa temptabeller.

 

@ITEM är strängen jag söker efter

@RES är värdet jag vill ha ut

@CRT är tänkt som en säkerhet så jag inte fastnar i en ändlös loop

 

Jag får inget resultat. Jag vet dock att 'KLS3055P3H01T01A3913 STDP STDP V2' finns så där borde  loopen stoppat.

Kan du hjälpa mig?

 

 

SET NOCOUNT ON
DECLARE @ITEM VARCHAR(38)
DECLARE @CTR INT = 0
DECLARE @RES VARCHAR(40)

SET @ITEM = 'KLS3055P3H01T01A3913 STDP STDP V2 SOMO'
SET @RES = NULL

WHILE @RES IS  NULL
BEGIN
SET @RES = (SELECT A.a_nr FROM spekgbp.dbo.art A WHERE A.a_bet LIKE @ITEM)
SET @ITEM = LEFT(@ITEM, LEN(@ITEM)-1)
SET @CTR = @CTR + 1
IF (@CTR =10)
BREAK
END

SELECT @RES as 'RES', @ITEM as 'ITEM'

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...