2016-07-19 125 views
1

我對此很陌生,所以要溫和。我正在運行這個腳本來更新一個空白的列,該列是108.該列設置爲numeric(18, 0)。爲什麼我會收到這條消息,我怎麼能通過它。將數據類型varchar轉換爲數字時出錯(新手)

Update HL7ManagerRecords 
set ScheduleID = 108 
where ScheduleID ='' 
+1

作爲一個說明,你應該標記你正在使用的SQL的「味道」。 「SQL」包含MySQL,MSSQL,Sybase等...另外,下面的答案是正確的;當你做'ScheduleID ='''時,你在比較ScheduleID到一個字符串。嘗試'在ScheduleID爲NULL的地方。 –

+0

謝謝我將 –

回答

1

ScheduleID設置爲numeric(18, 0)但你試圖尋找到ScheduleID等於一個empry字符串中的所有記錄:where ScheduleID =''

使用IS NULL代替

Update HL7ManagerRecords 
set ScheduleID = 108 
where ScheduleID IS NULL 
2

可能是田野裏是空

Update HL7ManagerRecords 
set ScheduleID = 108 
where ScheduleID is null 
0

您需要發佈表的架構。我的假設是ScheduleID是一個數字。由於它是一個數字,ScheduleID不是空白,因爲它包含一個數字numeric MSDN。我的假設是null,因爲如果您創建numeric列並且未指定它是否爲null,那麼這是默認值。所以,你需要做的是

Update HL7ManagerRecords 
set ScheduleID = 108 
where ScheduleID is null 
+0

非常感謝。那工作 –

+0

@JohnMolina高興,它做到了! – gh9

0

如果由於某種原因下了線,你需要採取一個數字數據類型,並把它作爲一個空字符串或將其與一個特定的值更改爲一個字符串,你可以使用類似ISNULL(ScheduleID,'')=''的內容。就像其他人說的那樣,「無效」會很好的工作,只是另一種方式。

相關問題