假如有一行数据是:
ID  start end 
1    1    100如何实现根据start与end的值,查询出来的结果将这一行拆分成若干行?
期望结果集是:
ID  start  end
1    1     1
1    1     2
1    1     3
………………
1    1     100
总计就要有一百行了。

解决方案 »

  1.   

    TO:laladeng() 
    其实我现在正在做这件事。
    我只是想如果能写一条标准的,基本的,与数据库无关的语句,就可以省去一些麻烦~~
      

  2.   

    如果在sql server中,可以用游标实现,LZ如果要的话我可以给你写一个贴上来...
      

  3.   

    TO:kissknife(侧身向南边) 
    先谢谢了。不过这种方案不可行。因为涉及到数据库迁移。之所以想要一条基本的标准SQL语句,也是因为这个原因~~,没办法,我就只能在程序里拆了
      

  4.   

    DataTable dt = new DataTable();
                dt.Columns.Add("ID",typeof(int));
                dt.Columns.Add("start",typeof(int));
                dt.Columns.Add("end",typeof(int));
                dt.AcceptChanges();
                object[] obj = {1,1,100};
                dt.Rows.Add(obj);
                int start = Convert.ToInt32(dt.Rows[0]["start"]);
                int end = Convert.ToInt32(dt.Rows[0]["end"]);
                int id = Convert.ToInt32(dt.Rows[0]["ID"]);
                for( int i=start; i<end+1; i++ )
                {
                    DataRow drNew = dt.NewRow();
                    drNew["ID"] = id;
                    drNew["start"] = start;
                    drNew["end"] = i;
                    dt.Rows.Add(drNew);
                }
                dt.Rows.Remove(dt.Rows[0]);
                dt.AcceptChanges();
      

  5.   

    不过这种方案不可行。因为涉及到数据库迁移。之所以想要一条基本的标准SQL语句,也是因为这个原因~~,没办法,我就只能在程序里拆了
    ========================================
    看来只能在程序中做了。
    因为必须使用存储过程,不太可能做到都符合sql92标准,会有数据库迁移的问题