我需要为使用SQL Server的两个表(两个集合)的交叉联接(交叉产品)产生的任何单行赋予唯一标识符。基本上,我需要在唯一标识符中“压缩”结果集的任何行的列值。我在考虑GUID方法或类似方法,但我不确定它是否能达到目的。什么方法可以对SQL Sserver有效?该机制的目的是评估不同集合(表)的成员(行)的所有可能组合,并为以后使用所需的任何组合分配唯一的名称。
例
Input Tables A and B
+----+----+ +----+----+
| Table A | | Table B |
+----+----+ +----+----+
| A1 | A2 | | B1 | B2 |
+----+----+ +----+----+
| 1 | 2 | | a | b |
| 3 | 4 | | c | d |
+----+----+ +----+----+
结果集表A X B +唯一标识符
+----+----+----+----+ +-----+
| A1 | A2 | B1 | B2 | | UID |
+----+----+----+----+ +-----+
| 1 | 2 | a | b | | 001 |
| 1 | 2 | c | d | | 002 |
| 3 | 4 | a | b | | 003 |
| 3 | 4 | c | d | | 004 |
+----+----+----+----+ +-----+
An option is to use
row_number()
: