我遇到了一個非常奇怪的問題。有兩個SQL查詢:SQL:將數據類型varchar轉換爲數字時出錯
Q1:
SELECT *
FROM tbl_1
WHERE ID IN (SELECT TargetID
FROM tbl_2
WHERE PeopleID = 'AAA')
AND ID = 49
Q2:
SELECT *
FROM tbl_1
WHERE ID IN (SELECT TargetID
FROM tbl_2
WHERE PeopleID = 'BBB')
AND ID = 49
,我們可以發現這兩個查詢是指除的peopleid相同。但他們的結果非常不同。對於Q1,我們得到了「將數據類型varchar轉換爲數字錯誤」;第二季度,它運行良好。我很困惑!
有一些可能有用的信息。
tbl_1 ID numeric(18,0) not null
tbl_2 TargetID varchar(50) not null
每在Q1或Q2目標ID可以通過IsNumeric
測試(即IsNumeric(TargetID) = 1
)
另一個信息:如果我們註釋行AND ID = 49
和每一個查詢運行良好
THX爲你的幫助
爲什麼你在varchar(50)數據類型中有數字? –
此表由其他人創建,而非我。出於某種原因,我必須使用它。 :) – Vincent