想象一个像这样的表:
create table test (depth integer, name text);
添加一些行:
insert into test (depth, name)
values (0, "no indent"), (1, "single indent"), (2, "double indent");
现在,根据如下depth
所示的参数创建输出:
no indent
single indent
double indent
在这种情况下,缩进是 4 个空格(但可以更改为任何有趣的缩进,例如制表符)。
我的直觉想做这样的事情:
select ' ' * depth || name from test order by depth;
然而,这在 Postgres 中爆发了。像这样的字符串乘法在 Python 中按预期工作。但是,我不熟悉 Postgres 中的等效操作。其他数据库实现也会很有趣。