gpt4 book ai didi

SQL查询-如何增加员工的工资,不超过一定的工资限制

转载 作者:行者123 更新时间:2023-12-03 19:10:51 25 4
gpt4 key购买 nike

我试图得到一个查询,允许我增加收入低于 2000 的人的工资,但我不希望这些人的工资增加高于 2000。

我正在使用的表是这样设置的:

DECLARE @Employee TABLE
(
Id INT IDENTITY(1,1) PRIMARY KEY
,FirstName NVARCHAR(100)
,Surname NVARCHAR(100)
,Salary MONEY
)
INSERT @Employee (FirstName, Surname, Salary) VALUES
('Michael', 'Barker', 2750), ('Robert', 'Morton', 1550),
('John', 'Mitchell', 1890), ('William', 'Davison', 1840),
('James', 'Houston', 1800), ('Mark', 'Parsons', 2060),
('David', 'Higgins', 1950), ('Richard', 'Frost', 1470),
('Frank', 'Herbert', 2100), ('Brian', 'Matthews', 1930)

我还使用了一个变量来增加工资,看起来像这样:
DECLARE @SalaryIncreaseInPercentage DECIMAL(16, 2) = 10

我能想到的最好的主意是使用 CASE陈述。我如何改进代码使新增加的工资停在2000?

我写的代码远看起来像这样:
Update @Employee
SET Salary = CASE
WHEN Salary<2000 THEN((@SalaryIncreaseInPercentage/ 100) * Salary) + Salary
ELSE Salary
END

最佳答案

您可以使用 MINVALUES职能

DECLARE @IncreaseFactor DECIMAL(16, 2) = 10

UPDATE e SET e.Salary = (SELECT MIN(NewSalary)
FROM (VALUES (e.Salary * (1 + @IncreaseFactor/100)), (2000)) AS salaries(NewSalary))
FROM @Employee e
WHERE e.Salary < 2000

关于SQL查询-如何增加员工的工资,不超过一定的工资限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62256517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com