我将 a 的结果行SELECT
与 相乘CROSS JOIN generate_series(1, max)
。我的查询是这样的:
select id, name
from person
CROSS JOIN generate_series(1, 4)
where <condition>;
我有这个结果:
ID | 姓名 |
---|---|
1个 | 姓名1 |
1个 | 姓名1 |
1个 | 姓名1 |
1个 | 姓名1 |
2个 | 名字2 |
2个 | 名字2 |
2个 | 名字2 |
2个 | 名字2 |
3个 | 名字3 |
3个 | 名字3 |
3个 | 名字3 |
3个 | 名字3 |
我想要这样的结果:
ID | 姓名 |
---|---|
1个 | 姓名1 |
2个 | 名字2 |
3个 | 名字3 |
1个 | 姓名1 |
2个 | 名字2 |
3个 | 名字3 |
1个 | 姓名1 |
2个 | 名字2 |
3个 | 名字3 |
1个 | 姓名1 |
2个 | 名字2 |
3个 | 名字3 |
那可能吗?
当然,
ORDER BY
表达式不必列在SELECT
列表中。按生成的值排序,然后按您要排序的任何其他内容排序:
或者,使用最少的语法(对不明确的标识符不太安全):