有个获取数据表的所有字段(集合的形式)的需求,在网上查询,基本上都是获取到字段之后使用 group_concat
函数,但是这是Mysql提供的函数,其他数据库不一定支持这个函数,例如presto sql。
于是,可以采用下面的方式获取:
select array_join(array_agg(col), ',')
from(
select t.column_name as col
from information_schema.columns t
where t.table_name = '表名'
)
其中,自查询中可以获取到所有的字段信息,是一个名为col的列,通过array_agg()
函数将其变成数组的形式,再通过array_join()
进行拼接就可以拿到所有的字段。