我有以下SQL語句:這個簡單的SQL語句有什麼問題?
SELECT * FROM Children WHERE Child_Name LIKE '%' + Child_ID + '%'
SQL服務器報告如下:Conversion failed when converting the varchar value '%' to data type int.
Child_ID是int數據類型的,但我看不出有什麼不對的代碼。
我有以下SQL語句:這個簡單的SQL語句有什麼問題?
SELECT * FROM Children WHERE Child_Name LIKE '%' + Child_ID + '%'
SQL服務器報告如下:Conversion failed when converting the varchar value '%' to data type int.
Child_ID是int數據類型的,但我看不出有什麼不對的代碼。
你需要明確轉換Child_ID
爲文本類型,否則會隱式轉換「%」的數字(從它的字符代碼),因此你收到的錯誤。
像這樣:
SELECT * FROM Children WHERE Child_Name LIKE '%' + CAST(Child_ID AS varchar(10)) + '%'
完美,謝謝! – 2013-03-25 17:02:49
您試圖連接/添加一個int到一個varchar,這是一個無效的操作。 嘗試
select * from children where child_name like '%'+cast(child_id as varchar(50))+'%'
爲什麼downvote?我認爲我的問題很簡單,並提供了答案所需的全部信息。事實上,正確的答案是在幾秒/分鐘內顯示的。一個解釋將是可愛的。 – 2013-03-25 17:03:32
當然,您要麼將Children的ID列與Child_ID的比較列或字符串值與Child_Name比較? – Tanner 2013-03-25 17:03:33
@坦納 - 這是爲了簡單的實驗目的,根本沒有實際的原因:) – 2013-03-25 17:04:09