在KDB中更改hdb中的值

在KDB中更改hdb中的值,kdb,Kdb,我想将hdb中一列中的某个值更改为另一个值。我尝试使用dbmaint包。但是我得到了一些类型错误 这是我的密码 fncol[DB;TBL;`col;{x:ssr[string x;"100";"i"$"0"]}]; 我试图将此列中的值100改为0,改为hdb中的所有日期 fncol[`:.;`tab;`a;{@[x;where x=100;:;0]}] 在这种情况下,您的lambda功能可以使用修正: 我假设它是一个整数列。 以上将当前值为100的索引处的值更改为0 在应用到一个重要的数据

我想将hdb中一列中的某个值更改为另一个值。我尝试使用dbmaint包。但是我得到了一些类型错误

这是我的密码

fncol[DB;TBL;`col;{x:ssr[string x;"100";"i"$"0"]}];
我试图将此列中的值100改为0,改为hdb中的所有日期

fncol[`:.;`tab;`a;{@[x;where x=100;:;0]}]
在这种情况下,您的lambda功能可以使用修正:

我假设它是一个整数列。 以上将当前值为100的索引处的值更改为0

在应用到一个重要的数据库之前,我会强调彻底测试这一点

在这种情况下,您的lambda功能可以使用修正:

我假设它是一个整数列。 以上将当前值为100的索引处的值更改为0


在应用到一个重要的数据库之前,我要强调彻底测试它。

出现类型错误的原因是您试图将一个嵌套的字符串列表添加到ssr函数中


我相信像{?[x=100;0;x]}这样的向量条件将更适合您的需要。此函数在x上对if语句元素进行求值,返回0(其中为true)和原始值(其中为false)

出现类型错误的原因是您试图将嵌套的字符串列表添加到ssr函数中


我相信像{?[x=100;0;x]}这样的向量条件将更适合您的需要。此函数在x上对if语句元素进行求值,返回0(其中为true)和原始值(其中为false)

在您的函数中,您似乎试图将字符串值100替换为整数值0。您会发现这很困难,因为如果您的起始列表是一个字符串列表,kdb将不允许您将某些值更改为其他类型

q)l:("a";"b";"c")
q)l[0]:1
'type
  [0]  l[0]:1
           ^
q)l[0]:"d"
q)l
"dbc"
此外,i$0将字符串转换为整数类型,而i$0将0内的文本解析为整数值。实际上,这意味着i$0将变成48i,因为在ASCII中0是48,而不是0


如果在出现类型错误并在q提示符处被置于多个方括号指示的调试模式后,您可以使用functions.z.ex和.z.ey查看失败的函数和参数,这可能会使您的函数中的调试变得更容易,看起来您正在尝试将字符串值100替换为整数值0。您会发现这很困难,因为如果您的起始列表是一个字符串列表,kdb将不允许您将某些值更改为其他类型

q)l:("a";"b";"c")
q)l[0]:1
'type
  [0]  l[0]:1
           ^
q)l[0]:"d"
q)l
"dbc"
此外,i$0将字符串转换为整数类型,而i$0将0内的文本解析为整数值。实际上,这意味着i$0将变成48i,因为在ASCII中0是48,而不是0

如果在得到类型错误并在q提示符处进入多个方括号指示的调试模式后,可以使用functions.z.ex和.z.ey查看失败的函数和参数,这可能会使调试更容易