比如数据表如下:
tablesid(int) name(varchar)
1 jack
2 lousi
3 mike
4 fuck
5 suck
6 dick
7 read
8 nancy
比如我想选取id为1 2 5 7 8 9 这几条记录
@selectid varchar(1000)
@selectid = ‘1,2,5,7,8,9’
select name from tables where id in(@selectid)
这样子会报错数据类型无法转换
我该改成什么样子才能使这条语句正确?
tablesid(int) name(varchar)
1 jack
2 lousi
3 mike
4 fuck
5 suck
6 dick
7 read
8 nancy
比如我想选取id为1 2 5 7 8 9 这几条记录
@selectid varchar(1000)
@selectid = ‘1,2,5,7,8,9’
select name from tables where id in(@selectid)
这样子会报错数据类型无法转换
我该改成什么样子才能使这条语句正确?
(
ID int
)
insert into @T_ID values
(1),
(2),
(5),
(7),
(8),
(9)select name from tables where id in(select ID from @T_ID)
这个ltrim函数的参数类型不也是varchar的吗?还不是一样参数错误
试了一下 这个ltrim把id放进去不会说参数不正确,但是charindex确会说,真是奇怪了
两个都是用varchar类型的参数的,一个能用int一个不能,搞得那么麻烦
不过谢谢你了 问题解决了
转换一下
cast(id as varchar(n))