【问题标题】:Julia: How to get dataframe value into single variableJulia:如何将数据框值转换为单个变量
【发布时间】:2021-11-14 06:06:07
【问题描述】:

我正在修改不是我自己编写的 Julia 代码。我在 Julia 工作的很少。我连接了一个字符串以创建一个 SQL 查询,该查询从数据库中返回一个整数值。我想在下一个 sql 字符串中使用返回的值。但是,从初始 SQL Select 语句返回的值是 1x1 数据帧。我的假设是我需要将返回值分配给一个可以在后续 SQL 字符串中使用的整数变量。

import Dates
using ODBC
using Dataframes

dt = Dates.today()
db = ODBC.DSN("mydsn","myuser","mypasswd")
sqlstr = string("SELECT empid FROM employees WHERE name = ","'","John Doe","'"," AND startdate < ","'",dt,"'",")
relempid = ODBC.query(db, sqlstr)

根据返回的 empid,我想运行额外的 SQL 查询,该查询将从数据库中返回一个数据框。

sqlstr2 = string("SELECT ticketId, shortdescription FROM tickets WHERE empid = ","'",relempid,"'",")

df = ODBC.query(db, sqlstr2)
ODBC.ODBCError("API.SQLExecDirect(stmt, query) failed; return code: -1 => SQL_ERROR

但是,这会导致上述 SQL 错误,因为 relempid 本身就是一个 1x1 数据帧。

我确信这可能很简单,但我无法让它工作。

【问题讨论】:

    标签: sql julia


    【解决方案1】:

    我知道您有这样的DataFrame

    julia> using DataFrames
    
    julia> df = DataFrame(a=111)
    1×1 DataFrame
     Row │ a
         │ Int64
    ─────┼───────
       1 │   111
    

    在这种情况下,只需注意 DataFramess 可以像矩阵一样被索引:

    julia> df[1,1]
    111
    

    当然你也可以通过列名来引用值:

    julia> df.a[1]
    111
    
    julia> df[1, :a]
    111
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-17
      • 2019-11-21
      • 2019-10-05
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多