当前位置: 代码迷 >> Sql Server >> 全角半角混合字段截取有关问题
  详细解决方案

全角半角混合字段截取有关问题

热度:74   发布时间:2016-04-27 11:18:50.0
全角半角混合字段截取问题
SQL 2000中文版

select 
cast(substring(cast('一副接W头/PCS' as varbinary) + cast(space(40) as varbinary),1,40) as varchar(40)) f1,
datalength(
cast(substring(cast('一副接W头/PCS' as varbinary) + cast(space(40) as varbinary),1,40) as varchar(40))
) f2, 
cast(substring(cast('一副接W头/PCS' as varbinary) + cast(space(40) as varbinary),41,40) as varchar(40)) f3,
datalength(
cast(substring(cast('一副接W头/PCS' as varbinary) + cast(space(40) as varbinary),41,40) as varchar(40))
) f4,
cast(substring(cast('一副接W头/PCS' as varbinary) + cast(space(40) as varbinary),81,40) as varchar(40)) f5,
datalength(
cast(substring(cast('一副接W头/PCS' as varbinary) + cast(space(40) as varbinary),81,40) as varchar(40))
) f6


f1 f2 f3 f4 f5 f6
-------------------------------------------------
一副接W头/PCS 40 3 0

(1 行受影响)


我想要的结果:
这个字段内的字符串 '一副接W头/PCS' 后不足长度补40个空格
f1 f2 f3 f4 f5 f6
-------------------------------------------------
一副接W头/PCS 40 40 40



有什么好方法解决吗? 


------解决方案--------------------
SQL code
select  cast(substring(cast('一副接W头/PCS' as varbinary(400)) + cast(space(400) as varbinary(400)),1,40) as varchar(40)) f1,datalength(cast(substring(cast('一副接W头/PCS' as varbinary(400)) + cast(space(400) as varbinary(400)),1,40) as varchar(40))) f2,  cast(substring(cast('一副接W头/PCS' as varbinary(400)) + cast(space(400) as varbinary(400)),41,40) as varchar(40)) f3,datalength(cast(substring(cast('一副接W头/PCS' as varbinary(400)) + cast(space(400) as varbinary(400)),41,40) as varchar(40))) f4,cast(substring(cast('一副接W头/PCS' as varbinary(400)) + cast(space(400) as varbinary(400)),81,40) as varchar(40)) f5,datalength(cast(substring(cast('一副接W头/PCS' as varbinary(400)) + cast(space(400) as varbinary(400)),81,40) as varchar(40))) f6-----------------f1                                       f2          f3                                       f4          f5                                       f6---------------------------------------- ----------- ---------------------------------------- ----------- ---------------------------------------- -----------一副接W头/PCS                                40                                                   40                                                   40(1 行受影响)
  相关解决方案