作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有这两个表:
TABLEA TABLEB
----------- -----------
ID | NAME ID | TABLEA_ID | NAME
1 | ... 1 | 1 | ...
2 | 2 | 2 | ...
3 | 3 | 2 |
4 | 4 | 2 |
5 | 3 |
6 | 3 |
7 | 4 |
8 | 2 |
我想要一个SQL SELECT
语句,当TABLEA.ID = TABLEB.TABLEA_ID
时可以生成这样的结果,你可以在这里注意我不关心分组或排序,我只想为相同 TABLEB.TABLEA_ID
的每一行生成一个增量值。
ID | TABLEA_ID | ORDER_INDEX | NAME
1 | 1 | 0 | ...
2 | 2 | 0 | ...
3 | 2 | 1 |
4 | 2 | 2 |
5 | 3 | 0 |
6 | 3 | 1 |
7 | 4 | 0 |
8 | 2 | 3 |
我尝试在多个子选择组合中使用 rownum
来根据 TABLEA_ID 中的值生成 ORDER_INDEX
,但没有成功。
非常感谢您。
最佳答案
我相信这就是你想要的:
SELECT B.ID, B.TABLEA_ID,
ROW_NUMBER() OVER(PARTITION BY B.TABLEA_ID ORDER BY B.ID) - 1 ORDER_INDEX,
B.NAME -- OR A.NAME, its not clear on your question
FROM TABLEB B
LEFT JOIN TABLEA A
ON B.TABLEA_ID = A.ID
关于sql - 如何在 SELECT 语句中生成顺序索引值(如列表的顺序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9331569/
我是一名优秀的程序员,十分优秀!