【问题标题】:Trouble with a simple query PyODBC简单查询 PyODBC 的问题
【发布时间】:2013-07-31 13:51:30
【问题描述】:

我要查询以下内容:

如果员工在至少一个项目上工作,则属性 Unknown Hrs 为 Yes,且为 NULL 小时,否则没有。

我首先制作一个列表,该列表包含所有相关的社会安全号码,因此:

对于列表中的 i:

unknown_hours=process_query("SELECT Distinct COUNT(*) FROM Works_On WHERE ISNULL(Hours) AND ESSN='%s'" %i) 

temp.append(unknown_hours)

问题是我得到的答案是 1L 或 0L,我需要它们是整数(对于算法)。有什么想法吗?

问候 森德泽

【问题讨论】:

  • int_unknown_hours = int(unknown_hours)?
  • 谢谢!出于某种原因,我总是倾向于在简单的答案之外思考,但这对我有帮助!

标签: python mysql pyodbc


【解决方案1】:

1L 只是整数值1 的长整数表示:

>> type(1L)
<type 'long'>
>>> long(1)
1L
>>> int(1L)
1

在 Python 中转换:

int(unknown_hours)

或者在数据库层:

SELECT Distinct CAST(COUNT(*) AS UNSIGNED) FROM Works_On WHERE ISNULL(Hours) AND ESSN='%s'

【讨论】:

  • 谢谢!这是我在 python 中的第一个实验,所以我忘了提到我使用了一个列表并且 int() 是不可能的。但是,根据您的回答,我知道要寻找什么,并最终用谷歌搜索了地图功能,所以谢谢! =)
  • 考虑使用列表推导来进行整数转换,而不是 map()。两种方法的比较here.
猜你喜欢
  • 2018-02-09
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多