2
votes

KDB: Comment convertir une colonne de table en liste?

si j'ai une liste et un tableau:

length
[5]  (.q.except)

[4]  a except (select c from bb)

Et je fais ceci:

a except (select c from bb)

J'obtiens l'erreur suivante: p>

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

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

Peut-être (sélectionnez c dans bb) est-ce toujours une table? Comment convertir une colonne en liste pour que l'instruction except fonctionne?

kdb

0 commentaires

4 Réponses :


2
votes

Essayez d'utiliser "exec", qui renverra la colonne comme liste.

a except bb`c

ou

a except exec c from bb


0 commentaires

3
votes

select génère en effet une table. Si vous voulez que la sortie soit une liste, utilisez exec:

q)a except exec c from bb
"34"
"56"


0 commentaires

1
votes

Les deux réponses sont parfaitement bonnes, mais personnellement je préfère t [`col]

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

Cela fonctionne également mieux si vous appelez dynamiquement


0 commentaires

1
votes

Une option:

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


0 commentaires