2010-12-14 3 views
0

Mit dem folgenden Code möchte ich einen "Schalter" machen, einen Feldwert prüfen und je nach Wert ein anderes Feld setzen. Ich muss dies für jede Zeile tun, dann ist es in einem Cursor. Aber etwas fehlt ...Fall in einem Cursor mit T-SQL verwenden

Danke für Ihre Hilfe

DECLARE @Res int 
OPEN MyCursor; 

FETCH NEXT FROM MyCursor 
INTO @field1, @field2, @field3, @field4 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    SELECT 
    CASE @field1 
    WHEN 'A' THEN @Res = 1 
    WHEN 'B' THEN @Res = 2 
    WHEN 'C' THEN @Res = 3 
    WHEN 'D' THEN @Res = 4 
    WHEN 'E' THEN @Res = 5 
    END 

    FETCH NEXT FROM MyCursor 
    INTO @field1, @field2, @field3, @field4 

END 

CLOSE MyCursor; 
+1

Was haben Sie mit @Res vor? – gbn

Antwort

3

Ihre unmittelbare Problem zu beheben, sollten Sie dies tun:

SELECT @Res = 
    CASE @field1 
    WHEN 'A' THEN 1 
    WHEN 'B' THEN 2 
    WHEN 'C' THEN 3 
    WHEN 'D' THEN 4 
    WHEN 'E' THEN 5 
    END 

Was tun Sie mit @Res tun wollen ? Und warum brauchst du einen Cursor?

+0

Ich muss für jede Zeile Geschäfte machen. Aber Sie können mir Ihren Rat geben, ich bin kein T-SQL-Typen, aber bereit zu lernen :) –

+3

@ Kris-I: Fügen Sie weitere Informationen zu Ihrer Frage, um den Zweck Ihrer Abfrage und dann gbn oder andere sein können kann Ihnen helfen. – Tony

Verwandte Themen