这个问题是在面试时问我的,我无法给出答案,我试过每个解决方案,互联网没有给出期望的输出,在oracle输入表A有ID列,表B有值列表a‘ID(表A)值(表B)
1英
2 C
3B
4 A
5 D
output table wants
ID值
1 A
2 B
3 C
4 D
5英
发布于 2022-05-08 08:46:57
您可以订购数字表和信函表,然后将数字表与信函表的行号上的字母表连接起来:
SELECT numbers.id, letters.value FROM
(SELECT id
FROM tableA) numbers
JOIN
(SELECT ROW_NUMBER() OVER(ORDER BY value) id, value
FROM tableB ) letters
ON numbers.id = letters.id
ORDER BY numbers.id, letters.id
发布于 2022-05-08 08:29:02
这看起来只是一个ROW_NUMBER窗口函数-
SELECT ROW_NUMBER() OVER(ORDER BY value) id, value
FROM your_table
ORDER BY value;
https://stackoverflow.com/questions/72159249
复制相似问题