2016-12-14 1 views
0

Ich versuche, die Werte von zwei Spalten in einer Zeile basierend auf dem Wert einer anderen Spalte in dieser Zeile zu ersetzen. Wenn ich den Code kompiliere, bekomme ich keine Fehler, aber die Ausgabewerte sind 0, egal ob die Bedingung erfüllt ist oder nicht. Ich habe derzeit den folgenden Code.Multi Spalte Ersetzen in SQLite

case $column1 
    when 'value1' 
     replace($column2,$column2,'MASKED') and 
     replace($column3,$column3,'MASKED') 
    else $column2 and $column3 
end 

Gibt es eine Möglichkeit zu tun, was ich in SQLite zu tun versuche?

BTW funktioniert es, wenn ich gerade eine Spalte wie so ersetzen ...

case $column1 
    when 'value1' 
     replace($column2,$column2,'MASKED') 
    else $column2 
end 

Vielen Dank im Voraus!

+0

Zeigen Sie die gesamte SQL-Anweisung an. –

+0

Dies ist eine ganze Aussage. Ich verwende ein ETL-Tool, um Tabellen an einen anderen Speicherort zu replizieren. Dieses Tool verfügt über ein Tool zum Erstellen von Ausdrücken, mit dem Sie einige benutzerdefinierte Transformationen für die eingehenden Tabellen durchführen können. Der Ausdrucksersteller verwendet SQLite. Jede andere SQL, die das Tool selbst zu dem Skript hinzufügt, das mir nicht bekannt ist. – user2635024

Antwort

1

Ein einzelner Ausdruck gibt einen einzelnen Wert zurück, der für eine einzelne Spalte verwendet werden kann.

Sie müssen zwei Ausdrücke für die zwei Spalten verwenden. Wenn Ihr Werkzeug nicht zwei Ausdrücke gleichzeitig verwenden kann, müssen Sie es zweimal ausführen.

+0

Danke. Ich habe für jede der beiden Spalten im Tool einen Ausdruck gemacht, und das hat funktioniert. – user2635024