简体   繁体   English

sql-将数据类型nvarchar转换为数值时出错

[英]sql - Error converting data type nvarchar to numeric

this query works fine 这个查询工作正常

select *  from
(select meas.Inspection_No, case 
when ISNUMERIC(meas.InspectionValue) = 1 then
    cast(meas.InspectionValue as decimal(10,2))
    else 0 End as IVEKVol, meas.InspectionValue,  spec.Name, spec.   [Description], meas.LastDate, meas.ID  from
(select ism.InspectionSpecificationMeasurementID, ism.Name, ism. [Description]  from PT_InspectionSpecification [is]
inner join PT_InspectionSpecification_Measurement ism on   [is].InspectionSpecification_No = ism.InspectionSpecification_No
where [is].PartDescription = 'Anode Dispense' and   [is].InspectionSpecification_type = 'Control Plan' and ism.Name LIKE 'I-IVEKVol    Recorded%') spec
inner join 
PT_InspectionItem_Measurement  meas on  spec.InspectionSpecificationMeasurementID =   meas.InspectionSpecificationMeasurementID) data

but when i add the where clause "where data.IVEKVol > 0" i get the error "Error converting data type nvarchar to numeric" 但是当我添加where子句“ where data.IVEKVol> 0”时,出现错误“将数据类型nvarchar转换为数值时出错”

select *  from
(select meas.Inspection_No, case 
when ISNUMERIC(meas.InspectionValue) = 1 then
    cast(meas.InspectionValue as decimal(10,2))
    else 0 End as IVEKVol, meas.InspectionValue,  spec.Name, spec.   [Description], meas.LastDate, meas.ID  from
(select ism.InspectionSpecificationMeasurementID, ism.Name, ism. [Description]  from PT_InspectionSpecification [is]
inner join PT_InspectionSpecification_Measurement ism on   [is].InspectionSpecification_No = ism.InspectionSpecification_No
where [is].PartDescription = 'Anode Dispense' and   [is].InspectionSpecification_type = 'Control Plan' and ism.Name LIKE 'I-IVEKVol    Recorded%') spec
inner join 
PT_InspectionItem_Measurement  meas on  spec.InspectionSpecificationMeasurementID =   meas.InspectionSpecificationMeasurementID) data
where data.IVEKVol > 0

Because data.IVEKVol column is NVARCHAR type, 0 is numberic type 因为data.IVEKVol列是NVARCHAR类型,所以0numberic类型

To compare two columns, DBMS must convert two columns type to a same type. 要比较两列,DBMS必须将两列类型转换为相同类型。

If data.IVEKVol column have data like: '1', '22',... '' you can try: 如果data.IVEKVol列的数据类似:'1','22',...'',您可以尝试:

WHERE CAST(data.IVEKVol AS INT) > 0  -- Can FOAT, DOUBLE, NUMBERIC, ... instead

If not, I think your code like: 如果没有,我认为您的代码如下:

WHERE data.IVEKVol  > N'0' -- recommend
-- OR
WHERE data.IVEKVol  > '0'  -- not recommend

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将数据类型nvarchar转换为数字SQL时出错 - Error converting data type nvarchar to numeric SQL 获取错误:“在SQL中将数据类型nvarchar转换为数字时出错” - Getting Error: “Error converting data type nvarchar to numeric” in SQL 将数据类型nvarchar转换为numeric - SQL Server时出错 - Error converting data type nvarchar to numeric - SQL Server 在查询中将数据类型nvarchar转换为数值时出错 - Error converting data type nvarchar to numeric in query 在视图中将数据类型nvarchar转换为数字时出错 - Error converting data type nvarchar to numeric in view 将数据类型 nvarchar(50) 转换为数值时出错 - Error converting data type nvarchar(50) to numeric 将数据类型 nvarchar 转换为数字错误的 SQL 奇怪错误。 仅在 Where 子句中出错 - SQL Strange Error converting data type nvarchar to numeric Error. Error only in Where Clause SQL / Python 尝试检查数据是否已存在:将 nvarchar 转换为数据类型数字的算术溢出错误 - SQL / Python Trying to check if data already exists: Arithmetic overflow error converting nvarchar to data type numeric SQL错误将数据类型nvarchar转换为float - SQL Error converting data type nvarchar to float SQL - 将数据类型 nvarchar 转换为浮点数时出错 - SQL - Error converting data type nvarchar to float
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM