如何将序列号插入未公开的列

时间:2013-10-07 04:57:52

标签: c# sql-server unpivot

我的数据库中有一个表,它在时间表的列中分别包含日期和时间,所以在前端将它显示为单个表我加入了日期和时间列并插入临时表并取消了它,但是,对于两个Unpivoted列,Pk_id是相同的,所以在下拉框中的前端,当我选择索引中的项目,在回发发生后在DDL中为6,它将返回到DDL中的索引1.所以,是一种为Unpivoted列添加序列号的方法,我的Unpivot查询是

  Select * from  
(  
  Select pk_bid,No_of_batches,Batch1,Batch2,Batch3,Batch4, from #tempbatch   
) as p  
  Unpivot(Batchname for [Batches] in([Batch1],[Batch2],[Batch3],[Batch4])) as UnPvt  

在上面的查询pk_bid& No_of_Batches是一样的,所以如果我放Rownumber() Partition by pk_bid Order by pk_bidRownumber() Partition by No_of_Batches Order by No_of_Batches它只给出 1,1 ,因为它是相同的。

1 个答案:

答案 0 :(得分:0)

我已经解决了我的上述问题,

我创建了另一个临时表,并创建了序列号,该表中的列具有我执行查询的不同值,

    Create Table #Tempbatch2
   (
     pk_bid int,  
     No_of_batches int,  
     Batchname Varchar(max),  
     [Batches] Varchar(max)  
   )

    Insert Into #Tempbatch2 
    Select * from  
    (  
      Select pk_batchid,No_of_batches,Batch1,Batch2,Batch3,Batch4 from #tempbatch   
    ) as p  
   Unpivot(Batchname for [Batches] in([Batch1],[Batch2],[Batch3],[Batch4])) as UnPvt

  Select Row_number() OVER(ORDER BY (Batchaname)) as     S_No,pk_bid,No_of_batches,Batchname,[Batches] from #Tempbatch2