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

WHILE loop

Rekommendera Poster

Postad (redigerade)

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'

 

Redigerad av Axi

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×