Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL中反向读取字符串?(并非相反)_Sql_Sql Server_String_Tsql - Fatal编程技术网

如何在SQL中反向读取字符串?(并非相反)

如何在SQL中反向读取字符串?(并非相反),sql,sql-server,string,tsql,Sql,Sql Server,String,Tsql,所以我有这两条线 @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))

所以我有这两条线

@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>
declare@a varchar(100)='销售:1:39'
@b varchar(100)=“销售额:12”
选择
左(@a,len(@a)-charindex(':',反面(@a)),左froma
,RIGHT(@a,当charindex(':',REVERSE(@a))-1<0,则0,否则charindex(':',REVERSE(@a))-1 end)RightFromA
,左(@b,len(@b)-charindex(':',反面(@b)))左fromb
,RIGHT(@b,当charindex(':',REVERSE(@b))-1<0,则0其他charindex(':',REVERSE(@b))-1 end)RightFromB

大家好,欢迎来到SO。我们可以帮助你们,但首先你们需要更清楚地解释你们想要做的事情,所以基本上我想要实现的是,我想比较这两个字符串
如果@a和@b是非数字的
那么如果@a和@b类似于“%:%”
如果是,那么@a的左部分=@b的左部分
如果是,那么@b的右部分=@a+1的右部分
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
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