Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何为datecolumn i生成uniqueRowdate编号?_Sql_Tsql_Sql Server 2012_Row Number_Date Conversion - Fatal编程技术网

Sql 如何为datecolumn i生成uniqueRowdate编号?

Sql 如何为datecolumn i生成uniqueRowdate编号?,sql,tsql,sql-server-2012,row-number,date-conversion,Sql,Tsql,Sql Server 2012,Row Number,Date Conversion,我的表中有一个日期列,我需要为日期更改生成一个唯一的rowdate。我使用了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

我的表中有一个日期列,我需要为日期更改生成一个唯一的rowdate。我使用了
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%使用上述公式,但我不知道为日期添加行号???

您可以使用行号()

ROW\u NUMBER()
函数将生成从1开始的计数。如果您想从某个任意值(如201402221)初始化计数,则可以向计数列添加基本计数,如下所示:

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

SQL FIDLE demo:

:我不能使用rownumber或identity列,因为我的表还有一些列。我需要get data number+rownumber使其唯一。我如何使用它来生成ROWDATENUMER字符串?
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)
select concat(replace(cast(product as date), '-', ''),
              row_number() over(partition by product order by product)) as prod_id
  from tbl