By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE t1 (id INT, name VARCHAR(255));
INSERT INTO t1 VALUES (1, 'Ivan'), (1,'Petr');
CREATE TABLE t2 LIKE t1;
INSERT INTO t2 VALUES (1, 'Ivanov'), (1,'Petrov');
Records: 2 Duplicates: 0 Warnings: 0
Records: 2 Duplicates: 0 Warnings: 0
WITH
cte1 AS ( SELECT id, name, ROW_NUMBER() OVER (ORDER BY name) rn
FROM t1 ),
cte2 AS ( SELECT id, name, ROW_NUMBER() OVER (ORDER BY name) rn
FROM t2 )
SELECT cte1.id id1, cte1.name name1, cte2.id id2, cte2.name name2
FROM cte1
JOIN cte2 USING (rn, id);
id1 | name1 | id2 | name2 |
---|---|---|---|
1 | Ivan | 1 | Ivanov |
1 | Petr | 1 | Petrov |