有没有办法从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"""
答案 0 :(得分:0)
我能够使用CTE(公用表格表达式)来解决这个问题
sql = """ WITH cte (id_alias) AS (SELECT visitorid AS id_alias FROM table LIMIT 1) SELECT id_alias from cte"""