我刚开始使用 SQL。我正在使用 YT 视频做一个项目,并试图划分 2 列(total_deaths/total_cases),但是当我尝试执行它时,我得到这个错误:
操作数数据类型 nvarchar 对于除法运算符无效。
这是我输入的查询:
select
location,
date,
total_cases,
total_deaths,
(total_deaths / total_cases) * 100 as death
from
CovidDeaths$
order by
1, 2
如果除法中使用的一列或两列是 NVARCHAR
,您可能
only得到该错误消息。您可能认为两列都是整数,但如果这是真的,您就无法得到该错误消息。使用
TRY_CAST()
将数据转换为数字(您可能无论如何都应该这样做以获得准确的百分比)。
SELECT
location
, DATE
, total_cases
, total_deaths
, CASE
WHEN try_cast(total_cases AS NUMERIC(10, 2)) > 0
THEN (try_cast(total_deaths AS NUMERIC(10, 2)) / try_cast(total_cases AS NUMERIC(10, 2))) * 100.0
ELSE 0
END AS death
FROM CovidDeaths$
ORDER BY
location
, DATE
注意 TRY_CAST() 如果无法转换值,将返回 NULL。