日期:2014-05-17  浏览次数:20502 次

sql在字符串中如何得到最后一个冒号后面的所有字符啊??
比如我通过查询READ_COUNT_LOG字段得到:

20081001:0;20081101:0;20081201:0;20090101:0;20090201:0;20090301:6

20090401:7;20090501:8;20090601:4;20090701:4

20091001:13;20091101:26;20091201:9;20100101:12

等等这些类似的字符串,我现在就是希望这个在得到的READ_COUNT_LOG中得到最后一个冒号后面的所有字符

------解决方案--------------------
第一,正则
第二,substring,先用LastIndexOf找到最后冒号位置,在从0去substring到这个位置
------解决方案--------------------
得到12
SQL code
Declare @S1 varchar(100)
   Select @S1='20090501:8;20090601:4;20090701:420091001:13;20091101:26;20091201:9;20100101:12'
   select right(@S1,charindex(':',REVERSE(@S1))-1)

------解决方案--------------------
sql中有REVERSE ,CHARINDEX ,LEFT,REVERSE
------解决方案--------------------
SQL code
DECLARE @str nvarchar(max)
SET @str='20081001:0;20081101:0;20081201:0;20090101:0;20090201:0;20090301:620090401:7;20090501:8;20090601:4;20090701:420091001:13;20091101:26;20091201:9;20100101:12'
SELECT REVERSE(LEFT(REVERSE(@str),CHARINDEX(':',REVERSE(@str))-1))