This wont help you?
SELECT *, CASE WHEN Row_no > 1 THEN
CONVERT(varchar, WO)+ CHAR(63 + Row_no)
ELSE CONVERT(varchar,WO) END FROM
(Select * ,
Row_Number() OVER (Partition BY WO ORDER BY WO) as Row_No
FROM #WO) #t1
Ohh sorry, Steve is right, thanks Steve. This should work for you Sunil! (Steve was using RD instead of WO)
SELECT WO, CASE WHEN RowCnt > 1 THEN
CONVERT(varchar, WO) + '(' + CHAR(96 + Row_no) + ') '
ELSE CONVERT(varchar, WO) END FROM
(Select * ,
Row_Number() OVER (Partition BY WO ORDER BY WO) as Row_No
FROM #WO) #t1
INNER JOIN (SELECT wo AS Wo1,COUNT(*) AS RowCnt FROM #wo GROUP BY WO) a
ON #t1.WO = a.wo1
---------------------------------------------------------------------------------