我目前正在LeetCode上练习LeetCode。我已收到以下资料:
ID是此表的主键列。此表的每一行都包含有关员工薪资的信息。编写SQL查询,从Employee表中报告第二高薪资。如果没有第二个最高薪资,则查询应报告null。
我创建了以下查询:
SELECT IF((SELECT count(*) FROM employee) = 1, 'null', salary) as SecondHighestSalary
FROM Employee
LIMIT 1 OFFSET 1它给出了请求的答案,只不过输出是以字符串的形式给出的。例如,如果薪资列由值100、200和300组成。我的查询输出" 200“而不是200。当我删除IF-语句并只提取第二个薪水时,它返回整数200。
当我使用IF语句时,为什么MySQL以字符串的形式返回一个整数?
发布于 2022-02-04 14:32:14
您在'null'中使用了IF,这是一个字符串,根据MySQL文档,输出的类型将是一个字符串。您应该在您的NULL中使用IF:
SELECT IF((SELECT count(*) FROM employee) = 1, NULL, salary) ....https://stackoverflow.com/questions/70987909
复制相似问题