You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在SQL Server Management Studio中对nvarchar类型列使用/运算符?

解决NVARCHAR列无法执行除法运算的问题

SQL Server不支持直接对NVARCHAR类型的列执行算术运算,这就是你收到报错的原因——total_cases和total_deaths都是字符串类型,不能直接用/运算符。

你可以通过将这两列转换为数值类型来解决问题,以下是两种可行的方法:

方法1:直接转换为数值类型

如果确定列中的所有值都是合法的数字,可以用CAST将它们转为DECIMAL类型(精度和刻度可根据你的数据调整):

select 
    location, date, total_cases, total_deaths, 
    (CAST(total_deaths AS DECIMAL(18,2)) / CAST(total_cases AS DECIMAL(18,2))) * 100 AS death_percentage
from 
    CovidDeaths#xlsx$
order by 
    1, 2

这里给计算结果起了death_percentage的别名,方便识别这是死亡率百分比。

方法2:处理非数值数据避免报错

如果列中可能存在空值、字母等非数字内容,用TRY_CAST更稳妥——转换失败时不会抛出错误,而是返回NULL:

select 
    location, date, total_cases, total_deaths, 
    (TRY_CAST(total_deaths AS DECIMAL(18,2)) / TRY_CAST(total_cases AS DECIMAL(18,2))) * 100 AS death_percentage
from 
    CovidDeaths#xlsx$
order by 
    1, 2

额外建议

因为你的数据来自Excel导入,下次导入时可以直接把total_cases和total_deaths设置为数值类型(比如INT或DECIMAL),这样后续查询就不用每次转换,既提升效率又减少出错可能。

内容的提问来源于stack exchange,提问作者Jayesha Miglani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:42:10