2016-11-18 5 views
0

Ich möchte die Zeilen einer Tabelle OLD in eine andere Tabelle NEW kopieren.Kopieren von Zeilen von Tabelle zu einem anderen

INSERT INTO NEW 
SELECT date, kind, id, product, version, quantity FROM OLD; 

Die Tabelle hat eine Spalte OLDkind die VARCHAR und enthält Wörter wie insert, extract, delete. In der Tabelle NEW ist diese Spalte eine INTEGER. Gibt es eine Möglichkeit zu sagen, dass, wenn Sie delete 1 finden, finden Sie extract einfügen 2 etc ..?

Antwort

1

können Sie eine CASE Anweisung verwenden, um die Zeichenfolge Etiketten mit ganzen Zahlen zu ersetzen:

INSERT INTO NEW 
SELECT date, 
     CASE WHEN kind = 'delete' THEN 1 
      WHEN kind = 'extract' THEN 2 
      ELSE ... 
     END, 
     product, 
     version, 
     quantity 
FROM OLD; 

Dies setzt voraus, dass die Spalten korrekt ausgerichtet sind, und alle anderen Spaltentypen übereinstimmen.

+0

Danke, es hat funktioniert! – yaylitzis

Verwandte Themen