T1:
组号:1001
序号:1
标题:男子复印零钞乘坐公交
时间:2012-01-01
内容:东北网10月27日讯 近期,哈市公共电车总公司收银中心,连续多日收到用彩色复印机印制的假钞,面值均为5元、10元。通过回放车载监控录像,确认了假币使用者的体貌特征,26日下午终将这名男子抓住,并移交司法机关处理
作者:小张组号:1001
序号:2
标题:男子复印零钞乘坐公交
时间:2012-01-01
内容:东北网10月27日讯 近期,哈市公共电车总公司收银中心,连续多日收到用彩色复印机印制的假钞,面值均为5元、10元。通过回放车载监控录像,确认了假币使用者的体貌特征,26日下午终将这名男子抓住,并移交司法机关处理
作者:小张

我根据组号取出数据后,需要把内容字段中的值进行分割,如每次分割20个字符,效果如下
组号   序号    标题                  内容                            作者       分段序号
1001    1   男子复印零钞乘坐公交 东北网10月27日讯 近期,哈市公共      小张         1
1001    1   男子复印零钞乘坐公交 共电车总公司收银中心,连续多日收     小张         2
1001    1   男子复印零钞乘坐公交 到用彩色复印机印制的假钞,面值均     小张         3
1001    1   男子复印零钞乘坐公交 为5元、10元。通过回放车载监控录      小张         4

解决方案 »

  1.   

    先算出来内容要分几段,然后用一个循环,每次去读取指定的那一段,然后根据其他字段拼出一个结果应该是可以
    的declare @i 
    set @i=0
    set @j=select len(内容)/20 from table where id=***
    while @i<@j
    begin
    select 组号 序号 标题 substring(内容,@i*20,20) 作者 @ as 分段序号 from table  where id=***
    set @i=@i+1
    end
      

  2.   

    楼主 你新闻表中的内容分段是??  用来在页面换行么?
    如果是这样的话 可以考虑直接把内容字段的值里面按指定字符长度(20)加入标签<br />(换行符)不行么?比如: 12345678901234567890<br />12345678901234567890<br />12345678901234567890
      

  3.   

      楼上思路的代码实现!--创建测试数据
    if OBJECT_ID('news') is not null drop table news
    create table news(组号 nvarchar(20),标题 nvarchar(30),内容 nvarchar(1000))
        
    insert into news
    select '1001','男子复印零钞乘坐公交','东北网10月27日讯 近期,哈市公共电车总公司收银中心,连续多日收到用彩色复印机印制的假钞,面值均为5元、10元。通过回放车载监控录像,确认了假币使用者的体貌特征,26日下午终将这名男子抓住,并移交司法机关处理。'
     
     --创建处理内容字符换行的函数
     if OBJECT_ID('dbo.f_Update_content') is not null 
     drop function dbo.f_Update_content
     go
     create function dbo.f_Update_content
    (  
       @content varchar(max),--待修改换行的字符
       @n int--每行的字数
    )
    returns varchar(max)
    as
    begin
    declare @new_content varchar(max),
    @number int,
    @i int
    set @new_content=@content
    set @number=len(@content)/@n--看一共需要分多少行
    if @number<2
    return @content
    else
    begin
    set @i=1
    while @i<@number+1
    begin
    set @new_content=stuff(@new_content,@i*@n+(@i-1)*6,0,'<br />')--@i*@n+(@i-1)*6,0 说明:第i个n行+(i-1)行-6(标签<br />长度为6)
    set @i=@i+1
    end
    end
    return @new_content
    END
    --查询语句
    go
    select 组号,标题,[dbo].[f_Update_content](内容,20)as 内容 from news