QStudio中展示含排序字典的表及混合类型列显示异常问题
QStudio相关问题解决方案
1. 如何在QStudio中展示包含排序字典的表?
排序字典(带s#标记的特殊类型)在QStudio里默认没法直接友好展示,毕竟它属于Q的复合特殊类型。给你两个实用办法:
- 查询时主动转换类型:用
value函数提取排序字典的实际内容,把它转成普通列表或字典再查询。比如你的表是t,含排序字典的列是dict_col,可以这么写:
转换后QStudio就能识别普通类型,正常展示数据了。select col1, value dict_col from t - 调整显示设置:部分版本的QStudio在结果面板有“显示原始数据”选项,开启后能直接展示排序字典结构,但可读性不如第一种方法,更推荐用
value转换后查询。
2. 混合类型列在QStudio查询异常的解决办法
你碰到的问题,本质是QStudio的结果包装机制对混合普通值和多层s#特殊排序类型的列支持不够友好,而Q控制台对这类复杂类型的解析能力更强。试试这几个方案:
- 转换特殊类型为普通类型:查询时用
value去掉排序标记,或者用string转成字符串。拿你的示例表举例,修改查询语句:
这样select col1, value col2 from ([]col1:`row_1`row_2`row_3;col2:(118718;`s#`s#2018.04.04D07:30:00.000000000 2018.04.04D...))col2里的排序时间戳会变成普通时间戳列表,和数字组成的混合列就能被QStudio正常识别返回。 - 更新QStudio版本:如果你的版本偏旧,大概率存在复杂复合类型的解析bug,更新到最新版能解决不少兼容性问题。
- 禁用包装后确保返回标准表结构:你说禁用包装后只返回列名,是因为原查询结果不是标准二维表(嵌套过深)。用
value转换后,结果会变成标准表结构,禁用包装也能正常显示数据。
内容的提问来源于stack exchange,提问作者N M
相关产品推荐
相关产品推荐

