如何对以结尾的列名使用select语句+

6yt4nkrj  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(404)

我正在尝试对列名称solar+下的一些数据运行spearman关联。但是,当尝试使用select语句从egauge13830表中选择所需的行数时,加号被视为运算符并导致错误。以下是我尝试过的两种说法及其结果:
1)

sql1 = """    
SELECT solar+    
FROM egauge13830    
WHERE tstamp < 1434870960    
"""

sqlalchemy.exc.programmingerror:(psycopg2.errors.syntaxerror)语法错误位于或接近“from”
3号线:自egauge13830

^
sql1 = """    
SELECT 'solar+'    
FROM egauge13830    
WHERE tstamp < 1434870960    
"""

df1 = pd.read_sql_query(sql1, engine)    
print(df1.head())

0   solar+    
1   solar+    
2   solar+    
3   solar+    
4   solar+

我还尝试更改此列的名称,但找不到不涉及select语句的方法,使用select语句会导致与上面所示完全相同的问题。
那么,有什么可以添加到select语句以使其运行的方法,还是其他更改列名的方法?
谢谢你的帮助。

dtcbnfnu

dtcbnfnu1#

刚在gordon发表评论后意识到,它在postgres中的双引号和在sql server中的方括号solar+'会将其视为普通字符串而不是列名,这就是它打印字符串“solar+”的原因

sql1 = """

       SELECT "solar+"

       FROM egauge13830

       WHERE tstamp < 1434870960

       """

理想情况下,列的名称不是标准的,因此您可以在拥有权限的情况下更改列的名称。

ALTER TABLE egauge13830
RENAME COLUMN "solar+" TO "solar";

相关问题