.Q.ft[x;y]
Where
y is a keyed tablex is a unary function x[t] in which t is a simple tablereturns a table with at least as many key columns as t.
As an example, note that you can index into a simple table with row indices, but not into a keyed table – for that you should use a select statement. However, to illustrate the method, we show an indexing function being applied to a keyed table.
q)\l sp.q
q)sp 2 3 / index simple table with integer list argument
s p qty
---------
s1 p3 400
s1 p4 200
q)s 2 3 / index keyed table fails
'length
Now create an indexing function, and wrap it in .Q.ft.
This works on both types of table:
q).Q.ft[{x 2 3};s]
s | name status city
--| -------------------
s3| blake 30 paris
s4| clark 20 london
Equivalent select statement:
q)select from s where i in 2 3
s | name status city
--| -------------------
s3| blake 30 paris
s4| clark 20 london