2016-06-21 2 views
-5

У меня есть таблица test с колонками (id int, name varchar).Как использовать последовательность в таблице в sql

Я хочу, чтобы результат, как показано ниже:

a 1 
b 2 
c 3 
d 1 
e 2 
f 3 
+1

Пожалуйста, ваши пробы Данные вашей таблицы – vercelli

+0

Я уже упоминал в вопросе, я хочу 1,2,3 последовательность, соответствующую алфавиту в строка, как если бы она была в первой строке, она должна быть 1, для следующей строки 2, для следующих 3, для следующего 1 и так далее. –

+0

Итак, имя «a», а id - «1»? и 'd' имеет id' 1' тоже? – vercelli

ответ

2

Создать последовательность вроде:

create SEQUENCE id_seq 
    AS BIGINT 
    START WITH 1 
    INCREMENT BY 1 
    MINVALUE 1 
    MAXVALUE 3 
    CYCLE 
    CACHE 100; 

Затем используйте эту последовательность в своем запросе на выборку, как показано ниже:

select NEXT VALUE FOR contacts_seq as ID, Name from TEST 
+1

Он помечено Sql-Server-2008, в котором объект последовательности не существует –

+0

В типичных SQL, запрос может быть записан в виде SELECT, случай, когда RowNumber% 3 = 0 THEN 3 ELSE RowNumber% 3 END NewSequence, Id, FirstName, ЬазШате, Sal ОТ (SELECT ROW_NUMBER() OVER (ORDER BY Id) AS RowNumber, * FROM EMP ) A – Lucky

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