如何将nvarchar转换为十进制?

lok*_*oki 1 sql t-sql sql-server sql-server-2005

我知道如何将nvarchar转换为十进制(18,4)Cast方法.我的表行数为80000.我的查询在下面运行完美...


SELECT  top 80000 id, Cast(MH as decimal(18,4)) as MH 
FROM TaskRelations WHERE MH is not null
Run Code Online (Sandbox Code Playgroud)

但;

但下面选择查询不工作!如果写在下面:


SELECT   id, Cast(MH as decimal(18,4)) as MH 
FROM TaskRelations WHERE MH is not null
Run Code Online (Sandbox Code Playgroud)

错误:将数据类型nvarchar转换为数字时出错.

JNK*_*JNK 7

MH在行80,000之后,您的字段中包含非数字数据.

您可以使用该ISNUMERIC功能,但它是出了名的错误,并会根据您的数据给您带来大量的误报.