Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python的SQL查询中以VARCHAR()数据类型传递整数_Python_Sql_Sqldatatypes - Fatal编程技术网

在python的SQL查询中以VARCHAR()数据类型传递整数

在python的SQL查询中以VARCHAR()数据类型传递整数,python,sql,sqldatatypes,Python,Sql,Sqldatatypes,我正在使用的数据库(WRDS)主要使用web表单进行查询,因此,尽管是整数,数据库中的主键仍存储为VARCHAR(6) 我的问题是这样的- 从公司第二部分选择gvkey,其中gvkey输入(1214212141121381300212635128503144) 由于此查询只是传递给python中函数的字符串,因此我无法控制键列表的数据类型,因此它们被读取为数字。这意味着我的查询没有找到任何匹配项 如果可能的话,我希望能够从查询中指定varchar(6)数据类型。我试过了 cast((12142

我正在使用的数据库(WRDS)主要使用web表单进行查询,因此,尽管是整数,数据库中的主键仍存储为VARCHAR(6)

我的问题是这样的-
从公司第二部分选择gvkey,其中gvkey输入(1214212141121381300212635128503144)

由于此查询只是传递给python中函数的字符串,因此我无法控制键列表的数据类型,因此它们被读取为数字。这意味着我的查询没有找到任何匹配项

如果可能的话,我希望能够从查询中指定varchar(6)数据类型。我试过了

cast((12142, 12141, 12138, 1300, 1722, 12635, 12850, 3144) as varchar(6) 

到目前为止,我还没有取得任何成功。我在WRDS客户支持方面的成功率甚至更低。如果有我所缺少的解决方案,我会欣喜若狂地找到它


干杯

为什么不反其道而行之,将inside-IN子句类型指定为VARCHAR?。试试看:

select gvkey from comp.sec_dprc where gvkey 
in ('12142', '12141', '12138', '1300', '1722', '12635', '12850', '3144')

如果知道值是数字,则将列转换为数字:

where cast(gvkey as int) in (12142, 12141, 12138, 1300, 1722, 12635, 12850, 3144)
语法和最佳方法可能因数据库而异,但想法是相同的


注意:如果您错误地认为内容仅为数字,则可能会出现转换错误。

请使用您正在使用的数据库标记您的问题。还可以显示表中的数据。这是一个很好的想法,但由于某些原因,这不起作用。。。这是我第一次尝试的事情之一
where cast(gvkey as int) in (12142, 12141, 12138, 1300, 1722, 12635, 12850, 3144)