检查预存/配置单元表中是否存在列名



一个表主体包含不同的版本。旧版本的表中可能不存在字段。例如mytable_1可能只包含列A

columnA
a
a
c
c

mytable_2可能包含一个称为columnB 的额外列

columnA  columnB
a       b
a       k
c       d
c       e

我正试着运行类似的东西

select * from mytable_{{version}}
where 
columnA = 'a'
{IF columnB exist}
And columnB = 'b'
{endif}

结果会是如果在mytable1上运行此将返回前两行。如果在mytable2上运行此将返回第一行。

如何为此编写查询?

您可以通过编程获得表中的列列表:

SELECT *
FROM information_schema.columns
WHERE table_name = 'mytable_...' AND table_schema = '....'

如果给定的列存在,您似乎希望利用这些信息发出带有附加条件的查询。要做到这一点,您需要在向Presto发出查询的应用程序中应用此逻辑,而不能仅在SQL中实现这一点。

相关内容

  • 没有找到相关文章

最新更新