En vej (2k8);
vælg 'abc_1_2_3_4.gif ' som img i #Tinsert #T-værdier ('zzz_12_3_3_45.gif');med T som (vælg 0 som række, charindex('_', img) pos, img fra # T union alle vælg pos + 1, charindex('_', img, pos + 1), img fra T hvor pos> 0) vælg img, pos fra T hvor pos> 0 sorter efter img, pos>>>>img posabc_1_2_3_4 .gif 4abc_1_2_3_4.gif 6abc_1_2_3_4.gif 8abc_1_2_3_4.gif 10zzz_12_3_3_45.gif 4zzz_12_3_3_45.gif 7zzz_12_3_3_45_gif 4_3_45_gif 1_3_1_code
Opdater
;med T(img, starter, pos) som (vælg img, 1, charindex('_', img) fra #t union alle vælg img, pos + 1, charindex('_', img , pos + 1) fra t hvor pos> 0) vælg *, substring(img, starter, case når pos> 0 derefter pos - starter else len(img) end) tokenfrom Torder by img, starter>>>img starter pos tokenabc_1_2_3_4 .gif 1 4 abcabc_1_2_3_4.gif 5 6 1abc_1_2_3_4.gif 7 8 2abc_1_2_3_4.gif 9 10 3abc_1_2_3_4.gif 11 0 4.gif zzz_12_3_3_45.gif 1 4 zzzzzz_12_3_3_45.gif 5 7 12zzz_12_3_3_45.gif 8 9 3zzz_12_3_3_45.gif 10 11 3zzz_12_3_3_45.gif 12 0 45.gif