标题:球SQL Server中int转varchar的方法
只看楼主
xyflax
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-4-8
结帖率:0
已结贴  问题点数:20 回复次数:1 
球SQL Server中int转varchar的方法
程序代码:
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我都用过了。没一个成功的。求解决办法
2015-04-16 09:53
mxbing1984
Rank: 7Rank: 7Rank: 7
来 自:贵州道真
等 级:贵宾
威 望:37
帖 子:73
专家分:342
注 册:2014-8-8
得分:20 
不是int无法转回varchar,是01015000001这个字符串为int的时候,前面的0被去掉了,数字没有0开头的
select  convert(int,'01015000001') --结果是1015000001
你再转换成字符串,那个0不会回来的
所以
你注释掉那句结果是P01015000001
不注释掉那句结果是P1015000001

天再高,踮起脚尖就能更接近阳光
2015-04-17 17:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-444072-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.086539 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved