2016-07-26 50 views
1

ich eine Tabelle, die ist:KDB Update mehrere Spalten auf mehrere entsprechende where-Klauseln

t:([]a:1 3 2 1 2 3 3 2 1;b:10 20 30 40 50 60 70 80 90;c:100 200 300 400 500 600 700 800 900) 

Und ich will alle c 0 sein, wo ein gleich 2 ist, und alle 0 sein, wo ein ist gleich 1

zur Zeit habe ich diese zwei Codes:

t:update b:0 from t where a=1 

t:update c:0 from t where a=2 

Meine Frage ist, wie diese beiden Zeilen von Codes in einem kombinieren. Weil ich an einer Tabelle arbeite, die viel größer als dieses einfache Beispiel ist, und es wird mir viele Reihen von Codes nehmen, um alle Aktualisierungen zu machen, die zu lang sind.

Antwort

2

können Sie vector conditional für diesen Einsatz:

update b:?[a=1;0;b], c:?[a=2;0;c] from t 
+0

für Ihre freundliche Hilfe, die Sie so vielen Dank! – ywu