2013-03-19 153 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爲例)。

相關問題