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

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

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

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

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

有任何想法吗?

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

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

至 …

select a list of columns with 2010 in their name:

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

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

呼叫:

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

返回类似于:

  1. SELECT foo2010,bar2010_id,FROM weather_data;

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

猜你在找的Postgre SQL相关文章