查询有什么问题?我想转换int
到varchar
:为什么会出现转换问题
DELETE FROM CM_OfflineMessages
WHERE CONVERT(INT, CONVERT(VARCHAR(MAX), ID)) IN ('1,2,3')
我得到这个错误:
Conversion failed when converting the varchar value '1,2,3' to data type int.
编辑:
我已经编辑查询
[dbo].[CM_DeleteOfflineMessageByID] (@ID AS VARCHAR(MAX))
DELETE FROM CM_OfflineMessages
WHERE CONVERT(VARCHAR(MAX), ID) IN (@ID)
但是没有编译时间问题,但数据没有被清除。
exec [dbo].[CM_DeleteOfflineMessageByID] @ID = N'''10'',''11'',''12'''
要转换为INT:CONVERT(INT, ..) – Serg
难道你不是指“在哪里(1,2,3)'ID? – Serg
这里的问题是引号 - 你试图比较ID和字符串'1,2,3',这是它出错的地方。删除引号,它将起作用 –