我需要关于必须与DB2和Oracle一起运行的SQL语句的建议。如何将具有特定值的列添加到现有数据库表中
前段时间已经建立了一个没有ID列的数据库表。添加ID列不是问题,但我绝对需要填写每行的行号。 我发现,rank()将是完美的,但在这里我无法选择特定的值,因为我总是得到值'1'。
当我建立一个中间表,如下所述,我输出的所有数据,即我需要
WITH MY_TEMP_TABLE AS
(
SELECT RANK() OVER (ORDER BY CODE ASC) MY_ROW, CODE, LAND
FROM SECOND_TABLE
)
SELECT *
FROM SECOND_TABLE
INNER JOIN MY_TEMP_TABLE ON SECOND_TABLE.CODE=MY_TEMP_TABLE.CODE
它是如何能够在数据库中更新表(此处:SECOND_TABLE)的ID列与MY_ROW中的值?
非常感谢......
你是什么意思,你总能获得价值1?你从哪里得到价值1?在my_row? –
我想你想[ROWNUMBER()](https://msdn.microsoft.com/en-us/library/ms186734.aspx)而不是RANK()。 – nscheaffer
SELECT ROWNUMBER()OVER(ORDER BY CODE ASC)MY_ROW,CODE,LAND FROM BDV_KFWSTAAT
并返回多于200个结果,其中每一个具有不同数量的
SELECT ROWNUMBER()OVER(ORDER BY CODE ASC)MY_ROW, CODE,LAND from BDV_KFWSTAAT where code ='DE'
返回值'1',而不是关于我在哪里使用。通过这种方式,我无法区分结果。 问题与rank()和rownumber()相同 – Oliver