´ó¼ÒºÃ£¬ÇëÎÊÎÒÏë²é³ö±íAÖУ¬×Ö¶ÎB ÒÔµ±ÌìÈÕÆÚ¸ñʽÈ磺091228¿ªÍ·µÄÊý¾Ý£¬Èç¹ûΪ0ÌõµÄ»°¾ÍÉèֵΪ091228£¬Èç¹ûcount(*)Ϊ1µÄ»°£¬¾ÍÉèΪ091228[1]£¬Èç¹ûΪ091228[1]µÄ»°¾ÍÈ¡µ±ÌìÈÕÆÚºóÐøÎ»[]ÖÐ×î´óÊýÖµ¼Ó1£¬ÇëÎÊ£¬ÕâÓï¾äÒªÔõÑùд£¿ È磺 ±íA B 091228 091228[1] 091228[8] Ôò½á¹ûΪ£º091228[9] ÔËÐÐʱ±¨´í:½« varchar Öµ '[2]' ת»»ÎªÊý¾ÝÀàÐÍΪ int µÄÁÐʱ·¢ÉúÓï·¨´íÎó¡£
select '091228'+'['+ ltrim(sum(case when right(b,1)=']' then cast(replace(stuff(b,1,7,''),']','') as int) else 0 end ))+']' from a Õâ¸ö,µ±ºóÒÑÓÐ[]ʱ±¨´í:½« varchar Öµ '[2]' ת»»ÎªÊý¾ÝÀàÐÍΪ int µÄÁÐʱ·¢ÉúÓï·¨´íÎó¡£ ÇëÎÊ,ÒªÔõÑù½â¾ö?ÓÃsubstring¿ÉÒÔ±ÜÃâÂð? SQL code:
declare @i varchar(10) select @i='091230'
select isnull(@i+'['+cast(max(substring(b,2,len(b)-2)+1) as varchar(10))+']',@i) as b from (select (case when right(b,len(b)-len(@i)) ='' then '[0]' else right(b,len(b)-len(@i)) end) as b from #temp where b like @i+'%') as a
select count(1) from FX_RETURNBOOKCHECKLIST fxreturnbo0_ where fxreturnbo0_.BOOKID='164 ' AND fxreturnbo0_.RETURNID='00025.S0000001' ÉÏÃæÒ»¸ö¼òµ¥µÄSQL,Ö´ÐÐʱ¼ä2.6à ......