sql—从两个不同的表中提取列数据并使用它

sdnqo3pr  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(446)

我试图从两个不同的表中提取数据,以便在排名查询中使用。我试图保留左栏“pvpranking”中的数据,并合并其余的数据,从而合并我的右连接。
pvpscores-有pvpwins、pvplose和pvpgiveup。而恶作剧还有其他的。
我似乎无法正确地使用这些数据,而不会出现错误,例如存在重复的列。
我已经在谷歌搜索了一段时间了,所有的东西都让我在尝试的时候感到很困惑。我希望你们能引导我找到答案。
谢谢你抽出时间。

USE DNWorld
GO
WITH cte AS (
  SELECT *, RANK() OVER (ORDER BY (((PVPWin * 1) + ([Kill] * 0.2) + ((PvpExp * 0.002)) - ((PVPLose * 0.5) + (Death * 0.1) + (PvPGiveUp * 0.25))) DESC) AS rn
  FROM PvPRanking P
    RIGHT JOIN PvpScores G
    ON P.CharacterID = G.CharacterID

)
UPDATE cte
SET PVPLevel = CASE
  WHEN rn = 1 THEN 26 -- #1 Rank Champion
  WHEN rn BETWEEN 2 AND 10 THEN 25 -- Reita
    WHEN rn BETWEEN 11 and 20 THEN 24 -- Warlord
    WHEN rn BETWEEN 21 and 30 then 23 -- Slayer
    WHEN rn BETWEEN 31 and 40 then 22 -- WATCH OUT
    WHEN rn BETWEEN 41 and 50 then 21 -- Royalty
    WHEN rn BETWEEN 51 and 60 then 20 -- Knight of Justice
    WHEN rn BETWEEN 61 and 70 then 19 -- Furious Fiend
    WHEN rn BETWEEN 71 and 85 then 18 -- Devil of PVP
    WHEN rn BETWEEN 86 and 100 then 17 -- God Of PvP
  ELSE 17
END
WHERE rn <= 100;```
czq61nw1

czq61nw11#

我可以通过创建临时表并提取数据来解决这个问题。

相关问题