jaydebeapi获取列别名

时间:2018-04-09 13:32:59

标签: python sql jaydebeapi

有没有办法从JayDeBeApi返回的sql查询中返回别名列名?

例如,我有以下查询:

sql = """ SELECT visitorid AS id_alias FROM table LIMIT 1 """

然后我运行以下命令(connect_to_vdm()建立与我的数据库的连接):

curs = connect_to_vdm().cursor()
curs.execute(sql)
vals = curs.fetchall()

我通常会像这样检索列名:

desc = curs.description
column_names = [col[0] for col in desc]

这将返回原始列名"visitorid",而不是查询"id_alias"中指定的别名。

我知道我可以在Python中交换值的名称,但希望能够在查询中完成此操作,因为它已在Select语句中定义。这在SQL客户端中表现得如预期,但在使用python / JayDeBeApi时,我似乎无法返回别名。有没有办法用JayDeBeApi做到这一点?

编辑: 我发现使用CTE构建我的查询似乎有助于解决问题,但仍然想知道是否有更简单的解决方案。以下是我重写相同查询的方法:

sql = """ WITH cte (id_alias) AS (SELECT visitorid AS id_alias FROM table LIMIT 1) SELECT id_alias from cte"""

1 个答案:

答案 0 :(得分:0)

我能够使用CTE(公用表格表达式)来解决这个问题

sql = """ WITH cte (id_alias) AS (SELECT visitorid AS id_alias FROM table LIMIT 1) SELECT id_alias from cte"""