加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 16:29:55 所属栏目:百科 来源:网络整理
导读:我想编写一个简单的查询来选择PostgreSQL中的多个列.但是,我一直在收到错误 – 我尝试了一些选项,但它们对我不起作用.目前我收到以下错误: org.postgresql.util.PSQLException: ERROR: syntax error at or near “column” 要获取具有值的列,请尝试以下操作
我想编写一个简单的查询来选择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;

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读