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

前端之家收集整理的这篇文章主要介绍了在PostgreSQL中选择具有特定列名称的列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想编写一个简单的查询来选择Postgresql中的多个列.但是,我一直在收到错误 – 我尝试了一些选项,但它们对我不起作用.目前我收到以下错误

org.postgresql.util.PsqlException: ERROR: Syntax error at or near
“column”

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

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

有任何想法吗?

column是 reserved word.除非您双引号,否则不能将其用作标识符.喜欢:“专栏”.

但是,这并不意味着你应该这样做.只是不要使用保留字作为标识符.永远.

至 …

select a list of columns with 2010 in their name:

..您可以使用此函数从系统目录表pg_attribute动态构建sql命令:

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;

你不能使它完全动态,因为在我们实际构建查询之前,返回类型是未知的.

猜你在找的Postgre SQL相关文章