--现在我有几个字段是ntext类型的,我用的是sql2008
--如:
  id             aa                  bb
  1      aaa<br><br>aaaa...      bbb<br> <br>
  2      <br> <br>               bbbbbbbbbbb<br>ssss<br>
  3      <br>                    sdfdgasdg<br>
  .......
  .......--等类似这样的数据 aa和bb 字段都是ntext 字段类型的
--我想得到的结果是如果字段里没有文字只有<br>的就设为空值,如果有文字又包含连续的两个<br>的只保留一个
--最后结果呈现如下:
  id                 aa               bb
  1      aaa<br>aaaa...          bbb<br>   
  2                              bbbbbbbbbbb<br>ssss<br>
  3                              sdfdgasdg<br>
  .......
  .......
 
--实现如上结果sql要怎样写,请大家提供一下解法。 

解决方案 »

  1.   

    字段转换成VARCHAR  再用CASE WHEN 判断 再REPLACE
      

  2.   

    这个当然尝试过了,如果ntext字段里的内容太长转换了会被截断,毕竟varchar 和 nvarchar 都是有长度限制的。
      

  3.   

    你可以把设置成varchar(max)/nvarchar(max)
      

  4.   

    建议参考:
    http://msdn.microsoft.com/zh-cn/library/ms178158.aspx下表说明了大值数据类型和 SQL Server 早期版本中与之对应的数据类型之间的关系。大值数据类型 早期版本中的 LOB
    varchar(max)  text* 
    nvarchar(max)  ntext* 
    varbinary(max)  image *SQL Server 6.5 版本的客户端不支持 ntext 数据类型,因此无法识别 nvarchar(max)。重要提示  
    请使用 varchar(max)、nvarchar(max) 和 varbinary(max) 数据类型,而不要使用 text、ntext 和 image 数据类型。