如果只是解决上面这个问题。可以改写如下:
opened = select * from tradeinfo where (openclose=0 and (status=1 || status=2)) || (openclose=1 and (status=0 || status=3))
这儿openClose只有两个状态,status只有4个状态。但是更一般的情况,如果状态比较多, 上面的做法不但代码繁琐,而且效率低下。这种情况下可以使用DolphinDB的condtionalFilter函数来实现。上面的例子可以改写为:
filterDict = dict([0, 1], [1 2, 0 3])
opened = select from tradeinfo where conditionalFilter(status, openClose, filterDict)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…