SET @bin = cast(left(@bin,69) as binary(69)) +0x02 +cast(right(@bin,58) as binary(58))
libin_ftsafe(子陌红尘) 的方法也有问题。 1> declare @a binary(20),@b binary(20) 2> set @a=0xa102a304a506a708a910a112a314 3> set @b=@a 4> print @a 5> set @a=convert(binary(20),stuff(@a,10,1,0x02)) 6> set @b=cast(left(@b,9) as binary(9))+0x02+cast(right(@b,10) as binary(10)) 7> print @a 8> print @b 9> go (1 row affected) (1 row affected) 0xA102A304A506A708A910A112A314000000000000 (1 row affected) (1 row affected) 0xA102A304A506A708A910A112A314000002000000 0xA102A304A506A708A902A708A910A112A3140000 1>
改了下!!!! declare @a binary(20),@b binary(20),@c binary(20) set @a=0xa102a304a506a708a910a112a314 set @b=@a set @c=@a print @a set @a=convert(binary(20),stuff(@a,10,1,0x02)) --set @b=cast(left(@b,9) as binary(9))+0x02+cast(right(@b,10) as binary(10)) set @b = cast(substring(@c,1,9) + 0x02 + substring(@c,11,10) as binary(20)) print @a print @b go 0xA102A304A506A708A910A112A314000000000000 0xA102A304A506A708A910A112A314000002000000 0xA102A304A506A708A902A112A314000000000000这下就正确了 还是用substring来操作~
+0x02
+cast(right(@bin,58) as binary(58))
1> declare @a binary(20),@b binary(20)
2> set @a=0xa102a304a506a708a910a112a314
3> set @b=@a
4> print @a
5> set @a=convert(binary(20),stuff(@a,10,1,0x02))
6> set @b=cast(left(@b,9) as binary(9))+0x02+cast(right(@b,10) as binary(10))
7> print @a
8> print @b
9> go
(1 row affected)
(1 row affected)
0xA102A304A506A708A910A112A314000000000000
(1 row affected)
(1 row affected)
0xA102A304A506A708A910A112A314000002000000
0xA102A304A506A708A902A708A910A112A3140000
1>
declare @a binary(20),@b binary(20),@c binary(20)
set @a=0xa102a304a506a708a910a112a314
set @b=@a
set @c=@a
print @a
set @a=convert(binary(20),stuff(@a,10,1,0x02))
--set @b=cast(left(@b,9) as binary(9))+0x02+cast(right(@b,10) as binary(10))
set @b = cast(substring(@c,1,9) + 0x02 + substring(@c,11,10) as binary(20))
print @a
print @b
go
0xA102A304A506A708A910A112A314000000000000
0xA102A304A506A708A910A112A314000002000000
0xA102A304A506A708A902A112A314000000000000这下就正确了 还是用substring来操作~