2015-02-24 90 views
0

我們有KDB查詢來自不同列的數據,其中一列有字符數組類型('C'),即它包含文本。 我們要的是enlist它,當我們查詢數據這樣 select enlist column_with_character_arr from table如何將字符數組轉換爲kdb中的列表

即有(「值1」)的列表裏面,所以我們就可以多一個元素添加到這個列表以後,比如說,( 「value1」,「value2」)。怎麼做?因爲目前當我們嘗試enlist或添加,()時,它會因長度錯誤而失敗。

回答

2

您在這裏缺少each。用途:

select enlist each column_with_character_arr from table 

例如:

q) t:([]v:("abc";"xyz")) 
q) select enlist each v from t 

爲什麼選擇(),在t,V是長度錯誤?

因爲逗號(,)在選擇查詢分離,我們希望在輸出不同的列,即

select col1,col2 from tbl 

所以在查詢:select(),v from t:第一列(逗號之前)沒有的值,第二列是v和因此兩列的數量都不相同。這就是爲什麼它會產生`length錯誤。

,使其運行,使用方法:

q) select ((),v) from t 

但是,這將無法登記的v每個項目。它僅在v列附加空值。

相關問題