簡體   English   中英

如何為日期列i生成uniqueRowdate數字?

[英]How to generate uniqueRowdate number for a datecolumn i?

我的表中有一個日期列,我需要為日期更改生成一個唯一的行日期。我使用了CONVERT(varchar(50),cast(product as DATE),112)但我卻沒有在日期中唯一。 我的表如下所示。

Product 
02/22/2014
02/22/2014
02/22/2014
02/22/2014
02/23/2014
02/23/2014
02/23/2014
02/23/2014
02/23/2014
02/24/2014
02/24/2014
02/24/2014

輸出看起來是

201402221
201402222
201402223
201402224
201402231
201402232
201402233
201402234
201402235
201402241
201402242
201402243

注意:我需要它,因為沒有值應該匹配。請幫助我,我使用上述公式嘗試了80%,但我不知道為日期添加行號嗎?

select concat(replace(cast(product as date), '-', ''),
              row_number() over(partition by product order by product)) as prod_id
  from tbl

SQL Fiddle演示: http ://sqlfiddle.com/#!6/0a526/7/0

您可以使用ROW_NUMBER()

SELECT ROW_NUMBER() OVER( ORDER BY Product) AS rn, *
FROM your_table  

ROW_NUMBER()函數將從1開始生成計數。如果要從某個任意值(例如201402221)初始化計數,則可以將基本計數添加到count列,如下所示:

SELECT ROW_NUMBER() OVER( ORDER BY Product) + 201402220 AS rn, *
FROM your_table 
declare @FromDate date = '2014-03-05'
declare @ToDate date = '2014-12-31'

select dateadd(day,rand(checksum(newid()))*(1+datediff(day, @FromDate, @ToDate)),@FromDate)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM