You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在现有SQL查询结果中新增名为'PercentOfRise %'的涨幅百分比列

你可以直接在现有SELECT的字段列表中新增一个匹配涨薪规则的CASE计算逻辑,将对应岗位的涨幅比例乘以100后作为新增列即可,完整修改后的SQL如下:

SELECT 
    EmployeeDemographics.EmployeeID, 
    FirstName, 
    Lastname,
    JobTitle, 
    Salary,
    CASE 
        WHEN JobTitle = 'Data Analyst' THEN Salary + (Salary * 0.20)
        WHEN JobTitle = 'Accountant' THEN Salary + (Salary * 0.15)
        WHEN JobTitle = 'HR' THEN Salary + (Salary * 0.02)
        ELSE Salary + (Salary * 0.10)
    END AS SalaryAfterRaise,
    -- 新增涨幅百分比列
    CASE 
        WHEN JobTitle = 'Data Analyst' THEN 0.20 * 100
        WHEN JobTitle = 'Accountant' THEN 0.15 * 100
        WHEN JobTitle = 'HR' THEN 0.02 * 100
        ELSE 0.10 * 100
    END AS `PercentOfRise %`
FROM EmployeeDemographics 
INNER JOIN EmployeeSalary ON 
    EmployeeDemographics.EmployeeID = EmployeeSalary.EmployeeID

注意:如果使用SQL Server数据库,可将别名的反引号替换为方括号[PercentOfRise %];如果需要固定小数位可搭配ROUND()函数处理,例如ROUND(0.20*100,2)即可保留两位小数。

如果不想重复编写两次CASE逻辑,也可以用CTE封装涨薪比例,后续维护涨薪规则只需要修改一次即可,示例如下:

WITH emp_raise_config AS (
    SELECT 
        EmployeeDemographics.EmployeeID, 
        FirstName, 
        Lastname,
        JobTitle, 
        Salary,
        CASE 
            WHEN JobTitle = 'Data Analyst' THEN 0.20
            WHEN JobTitle = 'Accountant' THEN 0.15
            WHEN JobTitle = 'HR' THEN 0.02
            ELSE 0.10
        END AS raise_rate
    FROM EmployeeDemographics 
    INNER JOIN EmployeeSalary ON 
        EmployeeDemographics.EmployeeID = EmployeeSalary.EmployeeID
)
SELECT 
    EmployeeID,
    FirstName,
    Lastname,
    JobTitle,
    Salary,
    Salary * (1 + raise_rate) AS SalaryAfterRaise,
    raise_rate * 100 AS `PercentOfRise %`
FROM emp_raise_config

内容的提问来源于stack exchange,提问作者Divesh Harchandani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:30:03