2016-04-01 15 views
1

Ich habe eine Tabelle mit einer Reihe von Spalten verschiedener Typen. Ich muss alle Spalten eines bestimmten Typs löschen, aber ich kann nicht herausfinden, wie das geht.Löschen Spalte basierend auf Typ in KDB +

würde ich so etwas wie dies mag:

delete from quotes where type = 11 

Aber das funktioniert nicht. Gibt es eine Möglichkeit, dies zu tun? Ich war auch

select c from meta quotes where type="s" 

Aber das gibt mir eine einspaltige Tabelle mit den Spaltenüberschriften der entsprechenden Spalten mit dem Befehl zur Liste der Lage, und ich weiß nicht, wo von dort aus gehen.

Antwort

1

kann eine funktionelle löschen verwenden (!), Oder ein Take (#) oder ein Tropfen (_)

q)t:([] col1:`a`b`c;col2:1 2 3;col3:`x`y`z;col4:"foo") 

q)![t;();0b;exec c from meta[t] where t="s"] 
col2 col4 
--------- 
1 f 
2 o 
3 o 

q)(exec c from meta[t] where t<>"s")#t 
col2 col4 
--------- 
1 f 
2 o 
3 o 

q)(exec c from meta[t] where t="s") _ t 
col2 col4 
--------- 
1 f 
2 o 
3 o 
Verwandte Themen