注册 登录
编程论坛 SQL Server论坛

球SQL Server中int转varchar的方法

xyflax 发布于 2015-04-16 09:53, 1310 次点击
程序代码:
declare @hao varchar(50);
set @hao='01015000001';
declare @P varchar(50);
set @P='P';
select @hao
select * from PDM_DOCID where CSYMBOL in (@P+@hao)
/*select @hao=convert(int,@hao)
select @hao
*/
declare @has varchar(50)
select @has=convert(varchar,@hao)
select @has
select * from PDM_DOCID where CSYMBOL in (@P+@has);
我注销的那段加上的话,两个查询结果就不一样了,如果不加的话,两个查询语句的结果就是一样的。我觉得应该是int无法转回varchar,求怎么转。cast和convert我都用过了。没一个成功的。求解决办法
1 回复
#2
mxbing19842015-04-17 17:16
不是int无法转回varchar,是01015000001这个字符串为int的时候,前面的0被去掉了,数字没有0开头的
select  convert(int,'01015000001') --结果是1015000001
你再转换成字符串,那个0不会回来的
所以
你注释掉那句结果是P01015000001
不注释掉那句结果是P1015000001
1