是否有方法从JayDeBeApi返回的sql查询返回别名列名?
例如,我有以下查询:
sql = """ SELECT visitorid AS id_alias FROM table LIMIT 1 """然后运行以下操作(connect_to_vdm()建立到我的DB的连接):
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"""发布于 2018-05-22 13:25:58
我能够使用CTE (公共表表达式)修复这个问题。
sql = """ WITH cte (id_alias) AS (SELECT visitorid AS id_alias FROM table LIMIT 1) SELECT id_alias from cte"""https://stackoverflow.com/questions/49734274
复制相似问题