Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Добавление пунктов и подпунктов в таблицу  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Подскажите пожалуйста, как мне реализовать

Запрос, который формирует номер пункта должен состоять из нескольких частей.
Отбирает максимальный номер пункта+1
Отбирает максимальный номер подпункта для этого пункта + 1
И потом все это отбирает вместе

Например: у меня может быть там 1.1 или 1.1.1 или 5.2.3
30 янв 17, 11:00    [20160485]     Ответить | Цитировать Сообщить модератору
 Re: Добавление пунктов и подпунктов в таблицу  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Поле типа varchar
30 янв 17, 11:01    [20160487]     Ответить | Цитировать Сообщить модератору
 Re: Добавление пунктов и подпунктов в таблицу  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Pabl0,

либо like либо пилите ваши пункты на числа и отбирайте
30 янв 17, 11:50    [20160728]     Ответить | Цитировать Сообщить модератору
 Re: Добавление пунктов и подпунктов в таблицу  [new]
iiyama
Member

Откуда:
Сообщений: 642
Pabl0,
если подпунктов <=4
declare @str varchar(10) set @str='1.1'
select 
ISNULL(parsename(@str, 4)+'.','')+
ISNULL(parsename(@str, 3)+'.','')+
ISNULL(parsename(@str, 2)+'.','')+
CAST(parsename(@str, 1)+1 AS VARCHAR(10))
30 янв 17, 13:55    [20161729]     Ответить | Цитировать Сообщить модератору
 Re: Добавление пунктов и подпунктов в таблицу  [new]
Pabl0
Member

Откуда:
Сообщений: 265
iiyama, мне нравится ваш вариант, только единственное, у меня к примеру есть подпункт 1.3 и курсор стоит на нем и я добавляю запись и она добавится 1.4, а нужно 1.3.1, я подумываю за вместе "+ '.0' " делать просто брать последнее значение после точки и + 1

declare @str varchar(10) 

set @str='1.3' + '.0' 

select 
ISNULL(parsename(@str, 4)+'.','')+
ISNULL(parsename(@str, 3)+'.','')+
ISNULL(parsename(@str, 2)+'.','')+
CAST(parsename(@str, 1)+1 AS VARCHAR(10))
30 янв 17, 15:05    [20162266]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить