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

SQL-从两个不同的表中提取列数据并使用它,sql,Sql,我试图从两个不同的表中提取数据,用于排名查询。我试图保留左列的数据,并合并其余的数据,从而右连接 pvpCores-具有PVPWins、PVPLose和PVPGiveUP。而恶作剧则占了上风 我似乎无法正确地使用这些数据而不会出现错误,例如存在重复的列 我已经在谷歌上搜索了一段时间了,在尝试它的时候,一切都让我感到困惑。我希望你们能引导我找到答案 谢谢你抽出时间 USE DNWorld GO WITH cte AS ( SELECT *, RANK() OVER (ORDER BY (((P

我试图从两个不同的表中提取数据,用于排名查询。我试图保留左列的数据,并合并其余的数据,从而右连接

pvpCores-具有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;```

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

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

由于在存在连接的情况下使用select*,您是否排除了重复列不是问题?要添加到@RAJAT,您可以只指定单个PVPRanking列,并将整个分数指定为SELECT P.PVPRanking,G.*…因为您在存在连接的情况下使用SELECT*,您是否排除了重复列不是问题?要添加到@RAJAT,您可以只指定单个PVPRanking列,并将整个分数指定为,选择P.PVPRanking,G.*。。