KDB: Как заставить преобразовать столбец таблицы в список? - PullRequest
0 голосов
/ 22 января 2019

если у меня есть список и таблица:

a:("12";"34";"56")

bb:([]c:("90";"12";"65"))

И я делаю это:

a except (select c from bb)

Я получаю следующую ошибку:

length
[5]  (.q.except)

[4]  a except (select c from bb)

Возможно (выберите c из bb) все еще таблица? Как преобразовать столбец в список, чтобы работал оператор исключений?

Ответы [ 4 ]

0 голосов
/ 24 января 2019

Один вариант:

q)a:("12";"34";"56")
q)bb:([]c:("90";"12";"65"))
q)([]c:a) except bb
c
----
"34"
"56"
0 голосов
/ 22 января 2019

select действительно выводит таблицу. Если вы хотите, чтобы вывод был списком, используйте exec:

q)a except exec c from bb
"34"
"56"
0 голосов
/ 23 января 2019

Оба совершенно хорошие ответы, но лично я предпочитаю t [`col]

a:("12";"34";"56");
bb:([]c:("90";"12";"65"));
a except bb[`c]

Это также работает лучше, если вызывать динамически

0 голосов
/ 22 января 2019

Попробуйте использовать «exec», который вернет столбец в виде списка.

a except exec c from bb

или

a except bb`c
...