2017-03-08 62 views
0

我有一個相對簡單的查詢:修改列數據類型的選擇視圖

SELECT ATTR.* 
    FROM NDC_ATTR ATTR 
INNER JOIN CONTRACT_NDC_BRG BRG 
    ON ATTR.ITEM_ID = BRG.CONTRACT_NUM_VAL AND BRG.CONTRACT_NUM_VAL LIKE '%'[email protected]_NUMBER+'%' 

連接是導致數據類型的問題:

Conversion failed when converting the varchar value 'Testing' to data type int. 

我怎樣才能在查詢過程中更改來電數據類型,所以我可以解決這個問題?

+0

你不能改變數據類型,但你可能將它轉換爲另一種數據類型。什麼是CONTRACT_NUM_VAL的數據類型? –

+0

'測試'不是一個數值,不能作爲一個整數進行鑄造。價值從哪裏來? – Sparrow

+0

如果我選擇了PHP,那是一個意外。 –

回答

3

您可以使用CAST或CONVERT

使用CAST:

SELECT ATTR.* 
    FROM NDC_ATTR ATTR 
INNER JOIN CONTRACT_NDC_BRG BRG 
    ON Cast(ATTR.ITEM_ID as varchar(500)) = BRG.CONTRACT_NUM_VAL AND BRG.CONTRACT_NUM_VAL LIKE '%'[email protected]_NUMBER+'%'