操作数数据类型 nvarchar 对于除法运算符无效

问题描述 投票:0回答:1

我刚开始使用 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
sql sql-server error-handling nvarchar nrecovideoconverter
1个回答
0
投票

如果除法中使用的一列或两列是 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。

© www.soinside.com 2019 - 2024. All rights reserved.