Как установить параметр функции в операторе обновления со значением из каждой строки? - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть таблица и функция:

table:([] id:til 5; name:("one";"two";"three";"four";"five"))
fu:{[x] x,"_",x}

И я хочу применить функцию в операторе обновления для каждой строки и установить результат в новый столбец «xyz».Как я могу это сделать?Это здесь не работает, так как кажется, что аргумент оценивается как список:

xyz:update x:fu[name] from table

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Вам нужно использовать оператор each-both, чтобы функция выполнялась в каждой строке отдельно:

q)update xyz:fu'[name] from table
id xyz
----------------
0  "one_one"
1  "two_two"
2  "three_three"
3  "four_four"
4  "five_five"
0 голосов
/ 20 сентября 2018

Используйте оба-оба: https://code.kx.com/q/ref/adverbs/#each-both

q)update xyz:fu'[name]from table
id name
----------------
0  "one_one"
1  "two_two"
2  "three_three"
3  "four_four"
4  "five_five"
...