Kdb 如何使用functional amend将p#添加到表中?

Kdb 如何使用functional amend将p#添加到表中?,kdb,Kdb,我有一个查询,它返回一个表中日期的一组符号的数据 dataFromTab:delete date from select from table where date=2015.01.01,any (sym like) each ("sym1";"sym2";"sym3";"sym4") dataFromTab:`sym xasc dataFromTab; @[`dataFromTab;`sym;`p#]; 类型var是98h,按sym排序工作正常,但当添加p#时,使用函数修正会给我一个“类型错

我有一个查询,它返回一个表中日期的一组符号的数据

dataFromTab:delete date from select from table where date=2015.01.01,any (sym like) each ("sym1";"sym2";"sym3";"sym4")
dataFromTab:`sym xasc dataFromTab;
@[`dataFromTab;`sym;`p#];
类型var是98h,按sym排序工作正常,但当添加p#时,使用函数修正会给我一个“类型错误”

如果您对我的错误有任何意见,我们将不胜感激


谢谢

是字符串列吗?如果转换为字符串,则会出现该错误:

q)trades:update string sym from trades
q)trades:`sym xasc trades
q)@[`trades;`sym;`p#]
'type
  [0]  @[`trades;`sym;`p#]
       ^

你能试着把它转换成一个符号,看看是否有效吗?

你是从函数中调用所有这些还是从全局名称空间调用这些

如果dataFromTab是局部变量,则将
p#应用于全局引用
dataFromTab将不起作用

q){data:select from tab;@[`data;`sym;`p#]}[]
'type
 [1]  {data:select from tab;@[`data;`sym;`p#]}
                         ^
q))\
您需要在本地重新分配dataFromTab才能使其工作

q){data:select from tab;data:@[data;`sym;`p#]}[]
您还可以使用“set”全局创建表,这将允许您的原始语法工作。但是,您可能不想创建不必要的全局变量

q){`data set select from tab;@[`data;`sym;`p#]}[]
`data

谢谢我使用非保留变量名来存储它。为了简单起见,我在这里改了名字。也许我应该编辑原始的帖子。修改我的答案。我的这个特殊代码被循环了多个日期。当我单独运行此查询时,它会工作。但在循环中应用时,它会与“type”一起出错。否。这是一个sym专栏,我试图挑选出符合标准的特定类型的sym,例如其中的sym,如“sym1*”谢谢!这成功了!我犯了你指出的错误。谢谢!