Sql Postgres在尝试按不存在的列名筛选信息\u schema.columns.column\u name时引发错误

Sql Postgres在尝试按不存在的列名筛选信息\u schema.columns.column\u name时引发错误,sql,postgresql,Sql,Postgresql,我需要从我的表中过滤掉列“x”,我不知道这个列是否存在。我写了一个问题: SELECT column_name FROM information_schema.columns WHERE table_name = 'T' AND column_name <> "X" 为什么??我试图将列名转换为字符串,但没有成功 什么问题 $ psql --version psql (PostgreSQL) 10.4 (Ubuntu 10.4-2.pgdg16.04+1) 提前感谢

我需要从我的表中过滤掉列“x”,我不知道这个列是否存在。我写了一个问题:

SELECT column_name
FROM information_schema.columns
WHERE table_name = 'T'
      AND column_name <> "X"
为什么??我试图将列名转换为字符串,但没有成功

什么问题

$ psql --version
psql (PostgreSQL) 10.4 (Ubuntu 10.4-2.pgdg16.04+1)

提前感谢

刚刚应用了如下解决方法:

select t.column_name
from (SELECT column_name :: text
      FROM information_schema.columns
      WHERE table_name = 'T') t
where t.column_name <> 'X'

问题是双引号

SELECT column_name
FROM information_schema.columns
WHERE table_name = 'T'
    AND column_name <> 'X'

这应该可以用…

psql-version显示psql工具的版本。这不是Postgres服务器的版本。psql客户端版本通常并不重要。要获取服务器的版本,请运行select versionString literals,并将其包含在中。双引号表示重复:可能的重复不是一种解决方法,它是在SQL中编写字符串文字的正确方法
SELECT column_name
FROM information_schema.columns
WHERE table_name = 'T'
    AND column_name <> 'X'