首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HDB表比较

HDB表比较
EN

Stack Overflow用户
提问于 2018-04-24 20:00:31
回答 1查看 102关注 0票数 0

Q&A风格的中发布这个问题。

为什么两个相同的表之间的布尔匹配(其中一个是从HDB中选择的)生成0b而不是1b

代码语言:javascript
复制
q)trade:trade2:`sym`time xasc ([] sym:5?`apple`google;time:5?.z.t;price:100+5?1.)

q).Q.dpft[`:tmp;.z.d-1;`sym;`trade]
`trade

加载HDB

代码语言:javascript
复制
\l tmp/
q)hist:select from trade where date=.z.d-1
q)hist
date       sym    time         price   
---------------------------------------
2018.04.23 apple  02:31:39.330 100.2392
2018.04.23 apple  04:25:17.604 100.1508
2018.04.23 apple  07:57:14.764 100.2782
2018.04.23 google 02:59:16.636 100.1567
2018.04.23 google 14:35:31.860 100.9785

q)(`date xcols update date:.z.d-1 from trade2)
date       sym    time         price   
---------------------------------------
2018.04.23 apple  02:31:39.330 100.2392
2018.04.23 apple  04:25:17.604 100.1508
2018.04.23 apple  07:57:14.764 100.2782
2018.04.23 google 02:59:16.636 100.1567
2018.04.23 google 14:35:31.860 100.9785

表比较生成假(0b)

代码语言:javascript
复制
q)(`date xcols update date:.z.d-1 from trade2)~hist
0b
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-24 20:00:31

不匹配是由于从HDB中选择的表的sym列(20h)类型造成的。

代码语言:javascript
复制
\l tmp/
q)hist:select from trade where date=.z.d-1
q)type exec sym from hist
20h
q)type exec sym from trade2
11h
q)type exec value sym from hist
11h

虽然它看起来非常像符号,但是有一个新的类型20h,类似于下面的(来自Kx wiki)

代码语言:javascript
复制
q)type `city$10?city:`london`paris`rome
21h

使用valuesym来获得所需的结果:

代码语言:javascript
复制
q)(`date xcols update date:.z.d-1 from trade2)~update value sym from hist
1b
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50009893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档