我有一个表serviceClusters与列标识(1590值)。然后我有另一个表serviceClustersNew与列ID,文本和评论。在这张表中,我有一些文本和注释的值,ID始终是1.这里是表格的示例:SQL更新行号
[1,dummy1,hello1;
1,dummy2,hello2;
1,dummy3,hello3;
等]
WhaI现在想在列ID值是表serviceClusters加上当前行号的持续指数:在我们的情况下,这将是1591年1592和1593
我试图解决这样的问题:首先,我更新了最高值的列ID,然后我tryed添加行号,但这并不工作:
-- Update ID to the maximum value 1590
UPDATE serviceClustersNew
SET ID = (SELECT MAX(ID) FROM serviceClusters);
-- This command returns the correct values 1591, 1592 and 1593
SELECT ID+ROW_NUMBER() OVER (ORDER BY Text_ID) AS RowNumber
FROM serviceClustersNew
-- But I'm not able to update the table with this command
UPDATE serviceClustersNew
SET ID = (SELECT ID+ROW_NUMBER() OVER (ORDER BY Text_ID) AS RowNumber FROM
serviceClustersNew)
通过发送一个命令,我得到错误“语法错误:Ordered Analytical Functio ns不允许在子查询中使用。“你有什么建议吗,我该如何解决这个问题?我知道我可以用易变的表格或添加一列来实现,但是有没有办法创建一个新表格/改变当前表格?
这是甲骨文或MySQL? –
这是Teradata –