我有以下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