2013-03-19 115 views
1
SELECT 
    New_accountid AS AccountId 
FROM 
    BingMapsPlatform_MSCRM.dbo.FilteredAccount WITH (NOLOCK) 
WHERE 
    new_islicensed = 1 
    AND new_accountid NOT IN (SELECT DISTINCT CONVERT(INT,New_AccountId) 
           FROM BingMapsPlatform_MSCRM.dbo.New_keydenylistExtensionBase WITH (NOLOCK) 
           WHERE New_AccountId IS NOT NULL) 

我从此脚本中收到此错误。请帮帮我 。将nvarchar转换为int时出错

ErrorMessage : State 1, Line 1
Conversion failed when converting the nvarchar value 'account 1' to data type int.

+1

更改为WHERE new_islicensed ='1'。更好的办法是更新你的数据类型,比特tho – 2013-03-19 09:11:07

+0

我试过这个,但我仍然得到相同的错误。任何其他解决方法 – 2013-03-19 09:25:04

+2

看起来像您有一个无法转换的列的值,并且该值为'account 1'..请检查列中的所有值都可以转换为整数。 – Mortalus 2013-03-19 09:33:51

回答

0

Id是int吗?可以是guid或连续guid。如果没有,那么将表格分成两半,然后重新运行等,直到你确定产生错误的行(我试着用一行来首先检查愚蠢)。哦,表的内容复制到备份第一(但你知道)

0

此行是导致错误:

CONVERT(INT,New_AccountId) 

使用过滤网,使通常选择在桌子上:where accountId = 'account 1',改变这个值然后再试一次。

考虑使用ISNUMERIC(input)函数来确定在转换之前它的数字是否为0,如果不是,则使用0或-1作为默认值(以this answer为例)。

相关问题