我要取出表中一个字段中的一部分数据,求一条SQL语句
该字段内容是 “使用人:xxxx  日期。。”,我现在要取出字段中:使用人和日期中间 xxx的内容,但XXX的长短不定,短的2个字符,长的有10以上字符,日期前有空格,
用 select substring(内容,5,X) from table ,取短了长的取不全,取长了日期又取进去了,那位高手帮忙给个语句,谢谢!

解决方案 »

  1.   


    DECLARE @Str VARCHAR(100) = '使用人:addkdfoejlsajfl 2012-06-15'
    SELECT LEFT(RIGHT(@Str,LEN(@str) - charindex(':',@Str)),CHARINDEX(' ',RIGHT(@Str,LEN(@str) - charindex(':',@Str))))
      

  2.   

    select substring(内容,5,charindex('日期',内容)-6) from table
      

  3.   

    select substring(内容,CHARINDEX('使用人:',内容)+4,CHARINDEX('日期',内容)-CHARINDEX('使用人:',内容)-4) from table 数据不全是这个格式的需要加判断
      

  4.   


    declare @x nvarchar(max)
    select @x='使用人:xxxx 日期。。'
    select ltrim(rtrim(replace(substring(@x,1,charindex('日期',@x)-1),'使用人:','')))