我在考瑟拉上了一门SQL课程,这个问题是在一个实践测验中提出来的。
“不包括0.00美元,最低双周高工资率是多少(请在回答中包括美元符号和小数点)?”
现在我得到了正确的答案(返回了100.00美元)
SELECT
min(Biweekly_High_Rate)
FROM
salary_range_by_job_classification
WHERE Biweekly_High_Rate <> '$0.00'但是,当我使用来自同一个表的SELECT *进行查询时,我可以看到,至少在检索到的行中,值为$15.00,小于$100.00。为什么不退还$15.00?分类
发布于 2022-04-27 13:47:48
我建议删除美元符号并将结果字符串转换为十进制值。输入一个十进制值作为您的限制参数(0.00),所以您正在比较两个数字,而不是两个字符串。这应该会带来更多的期望:
SELECT MIN(CONVERT(DECIMAL(10,2),REPLACE(BiWeekly_High_Rate,'$','')))
FROM salary_range_by_job_classification
WHERE CONVERT(DECIMAL(10,2),REPLACE(BiWeekly_High_Rate,'$','')) <> 0.00看看进展如何。如果比较两个字符串,则使用MIN聚合按字母顺序询问(我认为)第一个值。
https://stackoverflow.com/questions/72029866
复制相似问题