首页 > 解决方案 > 当我尝试通过不存在的列名过滤 information_schema.columns.column_name 时,Postgres 引发错误

问题描述

我需要从表中过滤掉列“x”,我不知道该列是否存在。我写了一个查询:

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

它抛出错误:

[42703] ERROR: column "X" does not exist

为什么?我试图将 _column_name_ 转换为字符串 - 它没有用。

什么问题?

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

预先感谢!

标签: sqlpostgresql

解决方案


问题是双引号......

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

这应该工作...


推荐阅读