2013-03-25 124 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))+'%'