我有一个包含以下列的表:
NAME (VARCHAR)
FISHING (INT)
SAILING (INT)
NAVIGATION (INT)
SALARY (NUMERIC)
Run Code Online (Sandbox Code Playgroud)
该表有9行数据。我曾经ALTER添加一列来保存rank该人的工资。它被称为SALARY_RANK。我的想法是用一个SELECT可以填补该排名的声明来填充该列。我尝试使用INSERT以下SELECT语句来填充该列,但最终创建了 9 个新行,其中除新列之外的所有行都是NULL。
解决这个问题的最佳方法是什么?
这是我为新列编写的 SQL:
ALTER TABLE #CODY_CREW
ADD SALARY_RANK INT;
INSERT INTO #CODY_CREW (SALARY_RANK)
SELECT
DENSE_RANK() OVER (ORDER BY SALARY) AS 'SALARY_RANK'
FROM #CODY_CREW
Run Code Online (Sandbox Code Playgroud)
这就是我运行时发生的情况:
NAME FISHING SAILING NAVIGATION SALARY SALARY_RANK
-------------------------------------------------- ----------- ----------- ----------- --------------------------------------- -----------
Amy 3 5 1 46000 NULL
Bill 1 2 5 43000 NULL
Carl 3 4 2 …Run Code Online (Sandbox Code Playgroud)