2013-03-25 93 views
0

我有以下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數據類型的,但我看不出有什麼不對的代碼。

+0

爲什麼downvote?我認爲我的問題很簡單,並提供了答案所需的全部信息。事實上,正確的答案是在幾秒/分鐘內顯示的。一個解釋將是可愛的。 – 2013-03-25 17:03:32

+0

當然,您要麼將Children的ID列與Child_ID的比較列或字符串值與Child_Name比較? – Tanner 2013-03-25 17:03:33

+0

@坦納 - 這是爲了簡單的實驗目的,根本沒有實際的原因:) – 2013-03-25 17:04:09

回答

4

你需要明確轉換Child_ID爲文本類型,否則會隱式轉換「%」的數字(從它的字符代碼),因此你收到的錯誤。

像這樣:

SELECT * FROM Children WHERE Child_Name LIKE '%' + CAST(Child_ID AS varchar(10)) + '%' 
+0

完美,謝謝! – 2013-03-25 17:02:49

1

您試圖連接/添加一個int到一個varchar,這是一個無效的操作。 嘗試
select * from children where child_name like '%'+cast(child_id as varchar(50))+'%'