KDB: как вставить / вставить строки из одной таблицы в другую - PullRequest
0 голосов
/ 23 октября 2018
k1:([a:("ff"; "yy"; "zz");z:("tt"; "yy"; "hh")] b:("33"; "44"; "55"); c:("66"; "77"; "88"))


k2:([z:()] a:(); b:(); c:(); m:(); i:())

k1 и k2 - таблицы с ключами.В k2 есть все столбцы k1 и более.

Как выполнить условный переход от k1 до k2.В основном, каково соответствующее рабочее утверждение из приведенного ниже:

`k2 upsert select k1 where a="ff"

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Ваша попытка на самом деле очень близка.Вы можете использовать:

`k2 upsert 0!select from k1 where a like "ff"
0 голосов
/ 23 октября 2018

Я думаю, что это решит вашу проблему:

k2 uj `z xkey select from k1 where a like "ff"

ключ будет сохранять ключ на k2, в то время как uj будет поддерживать все столбцы, включая столбцы без значений в k1.

В этом примере это вернет:

z   | a    b    c    m i
----| ------------------
"tt"| "ff" "33" "66"
...