表里有个字段类型是 ntext
内容格式:原文 [反馈]  2007-12-19 14:26:56  反馈内容说明:这个字段的内容先是:原文 后面有2个空格 然后是 [反馈]加两个空格再加上日期加上两个空格加上反馈内容
效果取:原文,反馈内容,反馈日期如:
apple好吃吗?  [反馈]  2007-12-18 16:14:53   太好吃了
原文              反馈内容    反馈日期
apple好吃吗?    太好吃了    2007-12-18 16:14:53如果有难度或不能实现这样也行
原文              反馈内容
apple好吃吗?    [反馈]  2007-12-18 16:14:53   太好吃了一定要考虑到原文有这样的串[反馈]加两个空格再加上日期

解决方案 »

  1.   

    text in row是多少?
    如果非文件指针直接转varchar,然后charindex,substring()
      

  2.   

    text in row是多少? 
    什么意思,不明白
      

  3.   

    Create table a1 
    (a ntext)insert into a1 select 'apple好吃吗?  [反馈]  2007-12-18 16:14:53   太好吃了 'select substring(a,1,charindex('[反馈]',a)-1)as  '主题','[反馈]'as 反馈 ,
    ltrim(rtrim(substring(reverse(convert(varchar(8000),a)),1,charindex(':',reverse(convert(varchar(8000),a)))-3))),
    substring(a,charindex('[反馈]',a)+4,charindex('[反馈]',a)+10)
    from a1--
    apple好吃吗?  [反馈] 了吃好太   2007-12-18 16:14:53 
      

  4.   

    ntext 字段操作很麻烦,建议改用nvarchar(max)
      

  5.   


    --上面的确的出答案,但是在判断哪个时间‘2007-12-18 16:14:53 ’却是比较棘手,因为无法保证在回复里面没有时间的‘:’,所以首先要模糊查询时间所在的位置才是这个问题的核心,,,
    例如
    'apple好吃吗?  [反馈]  2007-12-18 16:14:53   太好吃了:'
    'apple好吃吗?  [反馈]  2007-12-18 16:14:53   太好吃了 '
    apple好吃吗?   [反馈]  2007-12-18 16:14:53   太好吃了:' 
      

  6.   


    '匹配'
    select * from time  where   a like '%[0-9][0-9][0-9][0-9][-][0-9][0-9][-][0-9][0-9] [0-9][0-9][:][0-9][0-9][:][0-9][0-9]%'