假设我下面有一张下表
Column a Column b
------------------------------------------
aaaa 13
aaaa 22
aaaa 3
aaaa 23
bbbb 44
bbbb 56
bbbb 9
bbbb 0
我想从一个表中获取数据,然后将其放入另一个表中,但是我想使列具有唯一性,因为它不是唯一的
我正在尝试提出SQL语句
DECLARE @Count INT
SET @count = 4
case when @count <= 4 then
while @Count = @Count - 1 and @Count <> 0
select @Count + columnA, columnBform tablename
执行查询后,我希望数据显示如下
Column a Column b
------------------------------------------
1aaaa 13
2aaaa 22
3aaaa 3
4aaaa 23
1bbbb 44
2bbbb 56
3bbbb 9
4bbbb 0
答案 0 :(得分:0)
您可以使用ROW_NUMBER()
:
SELECT
CAST(ROW_NUMBER() OVER(PARTITION BY column_a ORDER BY column_b) AS VARCHAR(5))
+ column_a,
column_b
FROM mytable
这将通过递增column_a
在共享sahme column_b
的每组记录中分配递增的数字。如果更适合您,则可以使用另一列对记录进行排序。
答案 1 :(得分:0)
您可以使用窗口函数ROW_NUMBER
作为
SELECT CONCAT(ROW_NUMBER() OVER(PARTITION BY Col1 ORDER BY Col1), Col1) Col1,
Col2
FROM
(
VALUES
('aaaa', 13),
('aaaa', 22),
('aaaa', 3 ),
('aaaa', 23),
('bbbb', 44),
('bbbb', 56),
('bbbb', 9 ),
('bbbb', 0 )
) T(Col1, Col2)