【问题标题】:SQL create row_number from multiple string columnsSQL从多个字符串列创建row_number
【发布时间】:2021-09-06 07:53:56
【问题描述】:

我的表中有 3 个字符串列,我想用 row_nubmer 创建唯一列。 我已经尝试过这样的事情,但没有得到独特的价值:

ROW_NUMBER() OVER(PARTITION BY ([Marker1] + [Marker2] + [Marker3])
     ORDER BY ([Marker1] + [Marker2] + [Marker3])  DESC) ROWNUMBER

【问题讨论】:

  • 删除partition by子句
  • 但仍然没有获得所有 3 列的唯一值。现在我有 rownuber,只要 table 是.. 我需要一个 rownumber 用于 ([Marker1] + [Marker2] + [Marker3]) 值的相同组合。

标签: sql sql-server row-number unique-values


【解决方案1】:

使用DENSE RANK函数:

DENSE_RANK() OVER (ORDER BY [Marker1], [Marker2], [Marker3]) AS ROWNUMBER

请注意,您不需要连接字符串来识别唯一值。这可能会导致误报。

A   B   A+B
-----------
XX  X   XXX
X   XX  XXX

【讨论】:

  • 如果它回答了您的问题,请将其标记为已接受。
猜你喜欢
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 2020-05-16
  • 2012-05-22
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 2013-08-11
相关资源
最近更新 更多