Я согласен, что ответ Терри - самый простой метод, но здесь есть более простой способ сделать метод, который вы пытались помочь вам увидеть, как добиться этого без использования циклов do
q)SECURITY
`AAPL`GOOG`MSFT
q)order
KDB_SEC_ID val
--------------
AAPL 1
GOOG 2
AAPL 3
MSFT 4
IBM 5
q)order where @[{`SECURITY$x;0b};;1b] each order`KDB_SEC_ID
KDB_SEC_ID val
--------------
IBM 5
Он выводит 0b
если оно проходит, и 1b
, если это не удается, в результате получается логический список.Использование where
в логическом списке возвращает индексы, в которых встречаются 1b
, которые можно использовать для индексации в order
для возврата ошибочных строк.