【问题标题】:KDB concatenating strings inside select/exec statementsKDB 在 select/exec 语句中连接字符串
【发布时间】:2014-06-03 17:18:57
【问题描述】:

我有一个表 T,其列 Sym:`IBM`MSFT`GOOG... 想要最简单的方法来创建 newColumn 形式的新列:"IBM_Buy","MSFT_Buy","GOOG_Buy",...

以下内容似乎不起作用: select ((string Sym),"_Buy") from T

【问题讨论】:

  • ,"_Buy" 不起作用,因为您在 select 语句中使用向量,而不是“原子”(尽管在这种情况下我们使用的字符串也不是原子!)。所以user1895961的答案是正确的方法

标签: string kdb


【解决方案1】:

您需要使用每个左侧 (\:)。可以将其视为将“_Buy”连接到列表中的每个项目。

select (string[Sym],\:"_Buy") from T

【讨论】:

  • + 用 `$ 转换回符号
  • @user2393012 我是这么认为的,但在他的示例中,新的 col 填充了字符串。
【解决方案2】:

您可以在 select 语句中使用 each-both (') 函数和匿名函数:

select {x, "_Buy"}'[Sym] from T

【讨论】:

    【解决方案3】:
    t:([]sym:`IBM`MSFT`GOOG)
    
    update newsym:(string sym) cross enlist "_Buy" from t
    

    简单的方法(字典格式)

    t[`newsym] :
    (string t[`sym]) cross enlist "_Buy"
    

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      相关资源
      最近更新 更多