2013-12-23 2 views
1

Мне нужно создать дублирующее число в две цифры, если такое же число вставляется в таблицу.Как создать повторяющийся номер, если таковой номер в таблице sql

Мне нужен результат, выглядящий примерно так ... спасибо.

ID duplicate_id 
1423  01 
1423  02 
1423  03 
1423  04 
5246  01 
5246  02 
5246  03 
8967  01 

кто может мне помочь ...

+0

возможно дубликат [MySQL - Получить счетчик для каждого повторяющегося значения] (http://stackoverflow.com/questions/12463628/mysql-get- a-counter-for-each-duplicate-value) – Mihai

+0

Какую базу данных вы используете? –

+0

SQL Server 2008 .... – Happy

ответ

0

попробовать с (SQL Server)

SELECT id, RIGHT('0'+ CAST((ROW_NUMBER() OVER (Partition By ID Order By ID)) as varchar(2)), 2) as  duplicate_id 
FROM tbl 
+0

Я получаю ответ вроде --01 04 для такого же номера (например, счетчик) – Happy

+0

это не требование (на основе разных идентификаторов)? – Milen

+0

спасибо ... получил – Happy

2

версии MySQL

select id,duplicate_id 
    from (
      select id,     
       @row:=if(@prev=id,@row,0) + 1 as duplicate_id, 
       @prev:=id 
      from tbl 
     order by id 
)t 

Credit

SQL Fiddle

версия Sql сервер

;WITH Data AS 
( 
    SELECT 
     ID, 
     duplicate_id= ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID DESC) 
    FROM tbl 
) 
SELECT * 
FROM Data 

SQL Fiddle

+0

, показывая такую ​​ошибку - должен объявить скалярную переменную «@row». – Happy

Смежные вопросы