【发布时间】:2015-11-13 17:31:59
【问题描述】:
我想在一列(或两列)中显示两个数字(1-9;2-10;11-20)之间的所有数字(偶数/奇数/混合数)。
初始数据示例:
| rang | | r1 | r2 |
-------- -----|-----
| 1-9 | | 1 | 9 |
| 2-10 | | 2 | 10 |
| 11-20 | or | 11 | 20 |
CREATE TABLE initialtableone(rang TEXT);
INSERT INTO initialtableone(rang) VALUES
('1-9'),
('2-10'),
('11-20');
CREATE TABLE initialtabletwo(r1 NUMERIC, r2 NUMERIC);
INSERT INTO initialtabletwo(r1, r2) VALUES
('1', '9'),
('2', '10'),
('11', '20');
结果:
| output |
----------------------------------
| 1,3,5,7,9 |
| 2,4,6,8,10 |
| 11,12,13,14,15,16,17,18,19,20 |
【问题讨论】:
-
rang可以为空还是 NULL?结果应该是数组还是字符串?还是说一套会更好?
标签: sql postgresql postgresql-9.4 generate-series set-returning-functions