当前位置: 首页 > 面试题库 >

在PostgreSQL中选择具有特定列名称的列

能逸清
2023-03-14
问题内容

我想编写一个简单的查询来选择PostgreSQL中的许多列。但是,我不断收到错误-我尝试了一些选项,但它们对我没有用。目前,我收到以下错误:

org.postgresql.util.PSQLException:错误:“列”处或附近的语法错误

要获取具有值的列,请尝试以下操作:

select * from weather_data where column like '%2010%'

有任何想法吗?


问题答案:

column保留字 。除非您双引号,否则不能将其用作标识符。像:"column"

不过,这并不意味着您应该这样做。只是不要使用保留字作为标识符。曾经。

到 …

选择名称为2010的列的列表:

..您可以使用此功能从系统目录表动态构建SQL命令
pg_attribute

CREATE OR REPLACE FUNCTION f_build_select(_tbl regclass, _pattern text)
  RETURNS text AS
$func$
    SELECT format('SELECT %s FROM %s'
                 , string_agg(quote_ident(attname), ', ')
                 , $1)
    FROM   pg_attribute 
    WHERE  attrelid = $1
    AND    attname LIKE ('%' || $2 || '%')
    AND    NOT attisdropped  -- no dropped (dead) columns
    AND    attnum > 0;       -- no system columns
$func$ LANGUAGE sql;

称呼:

SELECT f_build_select('weather_data', '2010');

返回类似:

SELECT foo2010, bar2010_id, FROM weather_data;

您不能使其完全动态,因为在实际构建查询之前,返回类型是 未知 的。



 类似资料:
  • 我想编写一个简单的查询来选择PostgreSQL中的许多列。但是,我一直收到错误-我尝试了几个选项,但它们对我不起作用。目前我收到以下错误: 组织。postgresql。util。PSQLException:错误:“列”处或附近出现语法错误 要获取具有值的列,请尝试以下操作: 有什么想法吗?

  • 问题内容: 是通过其他方式或查询来查找具有特定列而不是如下所示的数据库表名称的方法, 问题答案: 在SQL Server中,您可以查询。 就像是: 如果您有多个模式中的表,则可能需要其他查找来解析模式名称。

  • 问题内容: 我使用以下内容创建了一个数据框: 我想获得含有从每列的数据帧具有在他们的名字。这只是我的问题的一个简单版本,因此我的实际数据框将具有更多列。 问题答案: 替代方法:

  • 问题内容: test1 test2 test3 test4 如何选择班级名称为“ 名单的 最后一个孩子” ? 我知道上面的示例不起作用,但是有什么类似的方法可以起作用吗? 重要: a)我不能使用,因为它可能也排在第四或第五位。 b)没有JavaScript。 问题答案: 我建议您利用可以为一个元素分配多个类这样的事实: 最后一个元素具有与其兄弟姐妹相似的类,但也具有可用于设置所需的任何CSS属性的

  • 问题内容: 在SQL中,将行复制到另一个(备份)表中。如果备份表具有不同的结构(或不同的列名称),这可能吗?如果没有,实现此目标的最佳方法是什么? 这是我想做的:具有columns 。我想将一些行从该表复制到另一个具有column的表。内容进入,对等 问题答案: 该 列名 不事可言,只要该 数据类型 相匹配。 如果列的数据类型不匹配,请尝试相应地强制转换值。 只需尝试 使用小的虚拟表。确保明确列出

  • 问题内容: 我确实进行了搜索,发现该SQL在最近的日期之前选择了行,该 行 与我想要的日期非常接近,但我似乎无法使它起作用。 我收到一个错误,因为选择列表中的列“ ID”不包含在聚合函数或GROUP BY子句中,所以它无效。 我想要每个不同名称的最新日期 这是我想要的一个例子 理想的结果 我正在使用Microsoft SQL Server 2008 感谢您的帮助或指向正确的方向 问题答案: Sel