'KDB How to update column values
I have a table which has column of symbol type like below.
| Name | Value |
|---|---|
| First | TP_RTD_FRV |
| Second | RF_QWE_FRV |
| Third | KF_FRV_POL |
I need to update it as below, wherever I have FRV, I need to replace it with AB_FRV. How to achieve this?
| Name | Value |
|---|---|
| First | TP_RTD_AB_FRV |
| Second | RF_QWE_AB_FRV |
| Third | KF_AB_FRV_POL |
Solution 1:[1]
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
or without using 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
Depending on the uniqueness of the data, you might benefit from .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
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
