SELECT
t1.[ACCEPT] + t1.[Price] + RIGHT(t1.[CARD],4) as 't1.UniqueID',
t2.[Approval Code] + t2.[Price] + RIGHT(t2.[Card Number],4) as 't2.UniqueID'
FROM table1 t1
INNER JOIN
table2 t2 ON
(t1.ACCEPT + t1.Price + RIGHT(t1.[CARD],4)) =
(t2.[Approval Code] + t2.[Price] + RIGHT(t2.[Card Number],4))
如上所示,我将两个表连接在一起,这是我创建唯一ID来链接这两个表的唯一方法。 但是,在非常罕见的情况下,此ID有重复
有什么方法可以运行一个sql查询,找到重复项并在末尾添加一个字母
e.g。让我们说有3个重复(这是非常非常罕见的,可能不会发生,但为了论证)
t1.UniqueID t2.UniqueID
00012136.006521 00012136.006521
00012136.006521 00012136.006521
00012136.006521 00012136.006521
我有一种方法可以循环并为两个表的ids添加一个字母
t1.UniqueID t2.UniqueID
00012136.006521a 00012136.006521a
00012136.006521b 00012136.006521b
00012136.006521c 00012136.006521c
感谢您的帮助,真的坚持这个
答案 0 :(得分:1)
小例子,
Declare @t table(UniqueID varchar(50))
insert into @t values('00012136.006521'),('00012136.006521')
;with cte as
(select *,ROW_NUMBER()over(order by UniqueID) rn from @t)
select UniqueID+char(97+(rn-1)) from cte
你能在查询中实现这个吗?