KDB中如何移除数据表列中的双引号
解决KDB数据表中去除字符串列双引号的问题
嗨,我来帮你搞定这个问题!在KDB里要去除CMYN列中每个单元格的双引号,有几个简单又实用的方案,我给你详细说说:
方案1:精准去除首尾双引号(推荐)
如果你的数据都是像"APPLE"这样仅首尾带双引号的情况,用trim函数是最稳妥的,它只会去掉字符串首尾指定的字符:
// 更新表t的CMYN列,去除首尾双引号 update CMYN: trim["\""] each CMYN from t
解释一下:trim["\""]会把字符串首尾的"去掉,each用来对列里的每一个元素都执行这个操作。
方案2:替换所有双引号
如果你的字符串中间也可能存在双引号,并且想把所有双引号都去掉,那就用ssr(字符串替换)函数:
// 把CMYN列中所有的双引号替换为空字符串 update CMYN: ssr[;"\"";""] each CMYN from t
这个方法会替换掉字符串里每一处的",不管是首尾还是中间的。
方案3:直接截取中间内容(谨慎使用)
如果能确保所有字符串都是严格首尾各一个双引号,没有例外,还可以用简单的截取方式,去掉首尾各一个字符:
// 去掉每个字符串的第一个和最后一个字符(即首尾的双引号) update CMYN: 1_1_ each CMYN from t
⚠️ 注意:这个方法风险较高,如果有某个字符串不符合首尾各一个引号的格式,会导致数据错误,所以使用前一定要确认数据格式统一。
小提示
在正式更新整张表之前,建议先取部分数据测试效果,避免误操作:
// 查看前10条数据处理后的结果 select CMYN: trim["\""] each CMYN from t where i<10
内容的提问来源于stack exchange,提问作者Alison Park
相关产品推荐
相关产品推荐

