想问个SQL问题 高手快来啊。。 就是我现在有一个表table1 单据号 日期 产品编码 1 11.1 a 1 11.2 a 1 11.3 b 2 11.1 a 2 11.2 c 3 11.1 b 4 11.1 c 5 11.1 a 5 11.2 c 5 11.3 b 6 11.1 a
然后我想增加一列叫做行号 就是如果单据号与上一个单据号相同 就+1 不同 就默认为1 这样子 应该怎么写啊?? [最优解释] select *,ROW_NUMBER() over(partition by 单据号 order by 单据号) from table1 [其他解释]
[其他解释] 不同默认为1是什么意思?最好把想要的结果贴出来,会更清晰点 [其他解释]
你好 这样是可以解决了 但是如果我想默认为2 然后每次增加2 那又怎么办? [其他解释]
单据号 行号 日期 产品编码 1 2 11.1 a 1 4 11.2 a 1 6 11.3 b 2 2 11.1 a 2 4 11.2 c 3 2 11.1 b 4 2 11.1 c 5 2 11.1 a 5 4 11.2 c 5 6 11.3 b 6 2 11.1 a
差不多可以理解为这样子? 这样子怎么解? [其他解释] select *,rm*2 from(select *,ROW_NUMBER() over(partition by 单据号 order by 单据号) rm from table1) 或者 select *,ROW_NUMBER() over(partition by 单据号 order by 单据号)+ROW_NUMBER() over(partition by 单据号 order by 单据号) rm
from table1 [其他解释] select *,ROW_NUMBER() over(partition by 单据号 order by 单据号)*2 as rowid from table1 [其他解释] select *,(ROW_NUMBER() over(partition by 单据号 order by 单据号))*2 as rowid from table1 这样括起来 应该是对的 [其他解释]
那那那 如果是 初始为2 每次增加1呢????????? 对不起啊。。。我新手问题多。。 [其他解释] select *,(ROW_NUMBER() over(partition by 单据号 order by 单据号))+1 as rowid from table1 [其他解释]