这个简单的SQL语句有什么问题?

时间:2013-03-25 16:56:33

标签: sql sql-server database sql-server-2008

我有以下SQL语句:

SELECT * FROM Children WHERE Child_Name LIKE '%' + Child_ID + '%'

SQL Server报告以下内容:Conversion failed when converting the varchar value '%' to data type int.

Child_ID是int数据类型,但我看不出代码有什么问题。

2 个答案:

答案 0 :(得分:4)

您需要将Child_ID显式转换为文本类型,否则会隐式将'%'转换为数字(来自其字符代码),因此会出现错误。

像这样:

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

答案 1 :(得分:1)

您正在尝试将int连接/添加到varchar,这是一个无效的操作。 尝试
select * from children where child_name like '%'+cast(child_id as varchar(50))+'%'