KDB 如何更新列值

Sha*_*kar 0 kdb

我有一个表,其中包含如下所示的符号类型列。

姓名 价值
第一的 TP_RTD_FRV
第二 RF_QWE_FRV
第三 KF_FRV_POL

我需要如下更新它,只要有 FRV,我就需要将其替换为 AB_FRV。如何实现这一目标?

姓名 价值
第一的 TP_RTD_AB_FRV
第二 RF_QWE_AB_FRV
第三 KF_AB_FRV_POL

jas*_*aly 5

q)t
name v
---------------
0    TP_RTD_FRV
1    RF_QWE_FRV
2    KF_FRV_POL
3    THIS
4    THAT
q)update `$ssr[;"FRV";"AB_FRV"]each string v from t
name v
------------------
0    TP_RTD_AB_FRV
1    RF_QWE_AB_FRV
2    KF_AB_FRV_POL
3    THIS
4    THAT
Run Code Online (Sandbox Code Playgroud)

或不使用 qSQL

q)@[t;`v;]{`$ssr[;"FRV";"AB_FRV"]each string x}
name v
------------------
0    TP_RTD_AB_FRV
1    RF_QWE_AB_FRV
2    KF_AB_FRV_POL
3    THIS
4    THAT
Run Code Online (Sandbox Code Playgroud)

根据数据的独特性,您可能会从.Q.fu中受益

q)t:1000000#t
q)\t @[t;`v;]{`$ssr[;"FRV";"AB_FRV"]each string x}
2343
q)\t @[t;`v;].Q.fu {`$ssr[;"FRV";"AB_FRV"]each string x}
10
Run Code Online (Sandbox Code Playgroud)