Auf Thema antworten

Guten Morgen zusammen,


als Quereinsteiger in diese Materie stoße ich gerade an meine Grenzen und hoffe das Ihr mir hierweiterhelfen könnt.


Folgende Tabelle als Voraussetzung:


RECIDFULLNAME
1069Aldi
1070Lidl
1075Edeka
1076Kaufland


Mein Ziel ist, mithilfe einer SQL Query die Spalte "FULLNAME" zu anonymisieren. Sprich in der Spalte sollte dann nur noch Discounter 1, Discounter 2, Discounter 3 und Discounter 4 stehen.


Ich habe versucht das ganze über eine Schleife zu lösen, mein Problem hierbei ist aber die Spalte RECID. Die Werte in dieser Spalte sind zwar eindeutig aber leider nicht fortlaufend.


Mit meinem aktuellem Lösungsansatz - siehe unten - scheitere ich genau daran, dass die Schleife aufgrund der nicht fortlaufenden RECID 8x durchläuft und ich somit nicht das gewünschte Ergebnis erhalte.


[CODE=sql]DECLARE @Counter BIGINT,

        @MaxId BIGINT,

        @FULLNAME NVARCHAR(120),

        @RECID BIGINT

SELECT  @Counter = min(RECID) , @MaxId = max(RECID)

        FROM BLUESTAR_MANUFACTURER

 

WHILE(@Counter IS NOT NULL

      AND @Counter <= @MaxId)

BEGIN

    SELECT @FULLNAME = FULLNAME, @RECID = RECID

    FROM BLUESTAR_MANUFACTURER WHERE RECID = @Counter AND EXISTS (SELECT RECID FROM BLUESTAR_MANUFACTURER)

 

    PRINT @FULLNAME + ' ' + CONVERT(VARCHAR,@RECID)

     

    SET @Counter  = @Counter  + 1

     

END[/CODE]


Um besser damit "spielen" zu können, habe ich mich für eine PRINT Ausgabe anstelle eines UPDATE entschieden, bitte lasst euch dadurch nicht beirren.


Habt Ihr ein Idee bzw. könnt Ihr mir verraten wie ich zu meinem Ziel komme?


Zurück
Oben