2017-11-13 4 views
1

UPDATE: Gefolgt Syntax von Forum Antworten zur Verfügung gestellt ... hit FehlerSQL: Ersetzen Einige Strings mit anderen String Werten in einer Spalte und schreiben zu Temp-Tabelle

SELECT * INTO #df_ERA4_a_temp 
      CASE WHEN [REQMNT] = 'A' THEN 'ANT' 
       WHEN [REQMNT] = 'A-12' THEN 'A12' 
       WHEN [REQMNT] = 'ADS-B' THEN 'ADSB' 
       ELSE [REQMNT] 
      END 
    FROM #df_ERA4_a 

Fehler: Msg 156, Ebene 15, Status 1 Zeile 129 Falsche Syntax in der Nähe des Schlüsselwortes 'CASE'.


Ich versuche, Textdaten in einer Spalte meiner Temp-Tabelle aufzuräumen. Danach möchte ich die Tabelle in eine andere temporäre Tabelle schreiben.

Unten ist der Code, den ich verwendet habe ... aber ich bekomme einen Fehler.

SELECT * INTO #test_b 
     CASE WHEN [COL] = 'A-12' THEN 'Ant' 
      WHEN [COL] = 'A-9' THEN 'Alpha' 
      WHEN [COL] = 'AD' THEN 'Aging' 
      ELSE WHEN [COL] = 'Art' THEN 'Artwork'  
    FROM #test_a 

Der Fehler, den ich erhielt, war: falsche Syntax nahe dem Schlüsselwort 'CASE'

+2

Zu viele temporäre Tabellen :( –

+0

Welche [DBMS] (https: // en.wikipedia.org/wiki/DBMS) Produkt verwenden Sie? "_SQL_" ist nur eine Abfragesprache, nicht der Name eines bestimmten Datenbankprodukts. Ihre Abfrage ist Nicht-Standard-SQL –

+0

Ich bearbeite meine Antwort, wenn ich bin Wenn Sie die Frage richtig verstehen, sind beide Tabellen Tabellen, so dass die neue Lösung funktionieren sollte. Wenn nicht, geben Sie uns bitte weitere Details an. – Fleury26

Antwort

2

EDIT: Wenn ich under d das Problem korrekt Sie Werte von Test a einfügen möchten, um b zu testen. Wenn so etwas besser wäre! Sie können um Hilfe bei aussehen: SELECT INTO TABLE

INSERT INTO #test_b [test_b.columns] 
    SELECT [test_a.columns], 
    CASE WHEN [COL] = 'A-12' THEN 'Ant' 
     WHEN [COL] = 'A-9' THEN 'Alpha' 
     WHEN [COL] = 'AD' THEN 'Aging' 
     WHEN [COL] = 'Art' THEN 'Artwork' 
     ELSE 'something' 
    END  
FROM #test_a 

Die ELSE kann keine WHEN vorangehen, brauchen Sie nur die ELSE, und Sie müssen die CASE mit einem END schließen. Sie können sich beziehen auf: SQL CASE

SELECT * INTO #test_b 
    CASE WHEN [COL] = 'A-12' THEN 'Ant' 
     WHEN [COL] = 'A-9' THEN 'Alpha' 
     WHEN [COL] = 'AD' THEN 'Aging' 
     WHEN [COL] = 'Art' THEN 'Artwork' 
     ELSE 'something' 
    END 
    FROM #test_a 
0

Es wird nicht ELSE und wann zusammen sein .. wie Sie sonst noch WHEN [COL] = 'Art'

SELECT * INTO #test_b 
     CASE WHEN [COL] = 'A-12' THEN 'Ant' 
      WHEN [COL] = 'A-9' THEN 'Alpha' 
      WHEN [COL] = 'AD' THEN 'Aging' 
      WHEN [COL] = 'Art' THEN 'Artwork' 
      ELSE 'Some Default value' -- or don't add ELSE if not required 
     END 
    FROM #test_a 

ist hier ein Tutorial auf CASE in SQL

+1

Das 'END' fehlt, um das' CASE' zu schließen. – Fleury26

+0

Nach dem 'ELSE'-Block fehlt ein 'END' – fboers

+0

korrigiert .... hinzugefügt thr * END * –

0

Schreiben Sie die INTO "#test_b" vor dem "FROM #test_a" und beenden Sie vor diesem

Verwandte Themen