所以我的老板要求我们按字母顺序对列进行排序,以便客户更容易找到他们想要的列。下面的图片显示了我的意思。目前,列按如下顺序显示:原始布局
但是,我想要实现的是这样的:sorted columns
如您所见,这些列是按字母顺序排序的,但我是手动完成的。我正在尝试找出一种让代码执行此操作的方法。尽管这听起来像是一个相当简单的目标,但我花了很多时间,我所有的方法都变成了死胡同。我在 Periscopedata.com 上运行我的代码,我认为他们使用 Amazon 的 Redshift。
Periscopedata 的工程师帮了我很多,他们的方法是这样的:
CREATE TABLE #ordercolumns as SELECT attname::varchar as column_name
from pg_attribute WHERE attrelid='devices'::regclass::oid and
attnum>=1;
SELECT 'SELECT ' || LISTAGG(column_name, ',') within group (order by
column_name) || ' FROM devices' FROM #ordercolumns;
DROP TABLE #ordercolumns;
我想知道我是否可以做类似的事情:
select (select * from ordercolumns) from devices
抱歉,如果我没有很好地解释我的问题。
我要提前感谢你们,因为这个社区自从我上大学以来就给了我很大的帮助。
更新:我要感谢您的所有帮助。我们尽量避免任何类型的手动排序,因为我们有数百个客户,每个客户都有他们想要查看的不同列。因此,手动对列进行排序会花费很长时间,而且准确性很低。谢谢你