将数据类型varchar转换为数字时出错(新手)

时间:2016-07-19 20:16:18

标签: sql

我是新手,所以要温柔。我正在运行此脚本以使用108更新一个空白的列。该列设置为numeric(18, 0)。为什么我收到这条消息,我怎么能超越它。

Update HL7ManagerRecords
set ScheduleID = 108
where ScheduleID =''

4 个答案:

答案 0 :(得分:2)

可能是字段为空

Update HL7ManagerRecords
set ScheduleID = 108
where ScheduleID is null 

答案 1 :(得分:1)

ScheduleID设置为numeric(18, 0),但您尝试查找ScheduleID等于empry字符串的所有记录:where ScheduleID =''

使用IS NULL代替

Update HL7ManagerRecords
set ScheduleID = 108
where ScheduleID IS NULL 

答案 2 :(得分:0)

您需要发布表格的架构。我的假设是ScheduleID是一个数字。由于它是数字,因此ScheduleID不为空,因为它包含数字numeric MSDN。我的假设是null,因为如果您创建numeric列并且未指定它是否为null,那么这是默认值。所以你需要做的是

Update HL7ManagerRecords
set ScheduleID = 108
where ScheduleID is null

答案 3 :(得分:0)

如果出于某种原因需要采用数字数据类型并将其视为空白字符串或将其更改为具有特定值的字符串,则可以使用类似ISNULL(ScheduleID,'')='的内容”。就像其他人说的那样,“is null”会很好用,只是另一种方法。