为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:
【CPU】:
【问题描述】*:
select * from user where user_id = 1;
假设user_id 是varchar类型, 这个时候就报错了
为什么不能自动转换, 如果要求自动转 需要怎么操作呢
我这边是正常的呢
测试一下,先查下面这个SQL,看看是否有返回记录
select *
from user
where not isnumeric(user_id)
如果有返回结果记录,则说明user_id字段存在非数值内容的情况,这样就不能直接用数值型参数,而需要把传入参数转换为字符类型。
比如
select * from user where user_id = '1';
另,在查询时,传递的参数类型最好与条件字段类型一致,这样能够避免类型转换引起的耗时和异常情况。
用CAST函数转换试下呢