我有一张桌子:
t:([]val:10?100)
我想添加一个包含cond语句的列:如果值小于55,则将其设置为55。但是update语句不适用于此:
update newVal:$[val<55;55;val] from
我该如何更改?
谢谢。
答案 0 :(得分:3)
由于val是向量,因此必须使用条件向量
update newVal:?[val<55;55;val] from t
顺便说一句,在55处进行铺垫的另一种方法是使用max /或(|)
update val|55 from t
答案 1 :(得分:0)
我认为@terrylynch很完美。但是有时候,当向量条件太难使用时,您也可以在q-sql语句中使用lambda。由于使用向量条件的原因仅仅是因为列是列表
q)t
val
---
12
10
1
90
73
90
43
90
84
63
q)update newVal:{$[x<55;55;x]}each val from t
val newVal
----------
12 55
10 55
1 55
90 90
73 73
90 90
43 55
90 90
84 84
63 63
q)update newVal:{x|55}each val from t
val newVal
----------
12 55
10 55
1 55
90 90
73 73
90 90
43 55
90 90
84 84
63 63