所以我有这两个字符串。
@a = SALE:1:39
@b = SALE:12
我必须比较两个字符串。 比较:
LEFT part of @a = SALE:1
RIGHT Part of @a = 39
LEFT part of @b = SALE
RIGHT Part of @b = 12
到目前为止,我所做的是
RIGHT(@a, CHARINDEX(':', REVERSE(@a))-1)<br>
RIGHT(@b, CHARINDEX(':', REVERSE(@b))-1)<br>
LEFT(@a, CHARINDEX(':', @a)-1)<br>
LEFT(@b, CHARINDEX(':',@b)-1).<br>
RESULT
39&lt; - LEFT @a
12&lt; - LEFT @b
SALE&lt; - RIGHT @a,应该 SALE:1
出售&lt; - 右@b
销售:1:39
SALE:12
我想在最后一次出现的:
如何在MS SQL Server中实现?
所以基本上我想在这里实现的是,我想比较这两个字符串。
IF @a AND @b are non-numeric<br> THEN IF @a AND @b LIKE '%:%'
IF So Then is the left part of @a = left part of @b
IF YES Then is the Right part of @b = Right part of @a + 1
答案 0 :(得分:0)
declare @a varchar (100) = 'SALE:1:39'
, @b varchar(100) = 'SALE:12'
select
LEFT(@a, len(@a) - charindex(':', REVERSE(@a))) LeftFromA
, RIGHT(@a, case when charindex(':', REVERSE(@a)) - 1 < 0 then 0 else charindex(':', REVERSE(@a)) - 1 end) RightFromA
, LEFT(@b, len(@b) - charindex(':', REVERSE(@b))) LeftFromB
, RIGHT(@b, case when charindex(':', REVERSE(@b)) - 1 < 0 then 0 else charindex(':', REVERSE(@b)) - 1 end) RightFromB