我用select top n * from Table1 where .... order by newid()的方法从table1中随机选择了n条数据,怎么把这n条数据插入到一个新表中呢?这些数据中的有些列我不需要,我还要添加新的列才能插入到新的表中,该怎么写SQL语句啊?

解决方案 »

  1.   

    select top n * into 新表名称 from Table1 where .... order by newid()
      

  2.   

    同意楼上用order by newid()
      

  3.   

    select top n 列1,列2... ,identity(int,1,1) as 新主键 into 新表名称 from Table1 where .... order by newid()
      

  4.   

    那就指定具体列:
    select top n 列1,列2 .... into 新表名称 from Table1 where .... order by newid()
      

  5.   

    我的原表是f_id(主键),f_title,f_key,新表是f_id(主键),f_name,f_title,这两个主键是不一样的,新表的主键我可以用标识列,在数据库中自增实现,那用select top n 列1,列2 .... into 新表名称 from Table1 where .... order by newid()这个语句就可以了吗?
    tobillpu(加勒比小飞猪) 
    identity(int,1,1) as 新主键 这个是什么意思?能解释一下吗?谢谢了
      

  6.   

    Select top n 
    f_id=Identity(Int,1,1),
    列1,列2
    into 新表名称 
    from Table1
    where .... 
    order by newid()
      

  7.   

    identity(int,1,1) as 新主键 
    就是增加一列自增标识列,分开指定列肯定可以select top n f_title into 新表名称 from Table1 where .... order by newid()
      

  8.   

    暈,你已經建了表??那就不能這麼寫了。你直接將新建表的f_id設為自增列。然後
    Insert 新表名称(Col1,Col2) Select Col1,Col2 From Table1 where .... order by newid()
      

  9.   

    我数据库中有两个表,c_select和c_paper,c_select的列是f_id(主键),f_title,f_key,c_paper的列是f_id(主键,标识列),f_title,f_name,我想按照用户选择的数量随机选取c_select表中的数据插入到c_paper该怎么写啊?
      

  10.   

    f_title,f_name取c_select中對應的哪個字段??
      

  11.   

    或者,你是這個意思??f_name是另外的,不是從數據庫中得到的。Insert c_paper (f_title,f_name) Select f_title,'aaa' From c_select
      

  12.   

    f_name是另外的,f_title是对应的,但我要随机啊~~n条数据
      

  13.   

    加上NewID()即可啊。Insert c_paper (f_title,f_name) Select f_title,'aaa' From c_select Where ...
    Order By NewID()
      

  14.   

    我在程序中是这样写的
    insert into  c_papselect(f_title, f_a, f_b, f_c, f_d, f_key) select top '"+selectCount+"'  f_title, f_a, f_b, f_c, f_d, f_key from c_select order by newid()
    提示出错,如果把'"+selectCount+"'设为固定值就可以执行,这个selectCount是没问题的,因为当selectCount为3的时候,程序提示第一行'3'出错,就是'"+selectCount+"'出错,想不太懂
      

  15.   

    终于搞清楚了,原来是"+selectCount+",不是'"+selectCoun+"',写懵了