KDB表更新语句

问题描述 投票:0回答:1

我有下面的测试表

data:([]isin:`abc`;cusip:``jkl;sedol:`mno`)

我需要更新具有以下优先级的instrumentID和instrumentIDType列的数据: 伊辛,库西普,塞多尔。 如果 isin 为 null,我们使用 cusip,如果 cusip 为 null,我们使用 sedol,但我需要更新我使用的相应 idType。还有比下面更好的方法吗?

data:update instrumentID:isin, instrumentIDType:`ISIN from data;

data:update instrumentID:cusip, instrumentIDType:`CUSIP from data where null isin;

data:update instrumentID:sedol, instrumentIDType:`SEDOL from data where null instrumentID;

data:update instrumentID:ticker, instrumentIDType:`TICKER from data where null instrumentID;

kdb kdb+
1个回答
0
投票
q)update instrumentID:sedol^cusip^isin,instrumentIDType:?[null isin;?[null cusip;?[null sedol;`TICKER;`SEDOL];`CUSIP];`ISIN]from data
isin cusip sedol instrumentID instrumentIDType
----------------------------------------------
abc        mno   abc          ISIN
     jkl         jkl          CUSIP
© www.soinside.com 2019 - 2024. All rights reserved.