2014-02-07 89 views
0
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重複的唯一ID向每個ID添加字母

的副本有什麼辦法,我可以運行一個SQL查詢,會發現重複和結束

例如添加了一封信讓說有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

我認爲你需要刪除你的SQL中的逗號之前的第二行和第三行的引號? – NickyvV

+0

更正感謝 – neeko

+0

爲什麼你會想加入這些專欄?此外,'SELECT'和'JOIN'不顯示選擇的相同列。例如。 't1。[批准代碼]在SELECT中,'t1.ACCEPT'在JOIN中。 – NickyvV

回答

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 

你可以在你的查詢中實現這個嗎?

+0

感謝您的答覆,但會實際更新表並插入字符? – neeko

+0

你想更新表嗎?還是隻是查看? 顯示你做了什麼?你被擊中的地方? – KumarHarsh