Julia:如何将数据帧值放入单个变量中

Sco*_*ish 3 sql 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)
Run Code Online (Sandbox Code Playgroud)

根据返回的 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
Run Code Online (Sandbox Code Playgroud)

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

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

Prz*_*fel 5

我知道你有一个DataFrame这样的情况:

\n
julia> using DataFrames\n\njulia> df = DataFrame(a=111)\n1\xc3\x971 DataFrame\n Row \xe2\x94\x82 a\n     \xe2\x94\x82 Int64\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n   1 \xe2\x94\x82   111\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
julia> df[1,1]\n111\n
Run Code Online (Sandbox Code Playgroud)\n

当然,您也可以通过列名称引用该值:

\n
julia> df.a[1]\n111\n\njulia> df[1, :a]\n111\n
Run Code Online (Sandbox Code Playgroud)\n