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

Откуда:
Сообщений: 308
Возможно ли в запросе перемещаться по записям пока не значение поля равно нулю, например в такой последовательности

1. 0
2. 0
3. 0
4. 0
5. 0
6. 0
7. 15
Мне нужно выбрать запись с номером 7, точнее предшествующую ей шестую.
Возможно ли так сделать без применения хранимых процедур?
24 июл 12, 15:44    [12909118]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Возможно.
24 июл 12, 15:45    [12909124]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
Бахрам
Member

Откуда:
Сообщений: 308
Гавриленко Сергей Алексеевич
Возможно.

Как, если не секрет?
24 июл 12, 16:03    [12909275]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Бахрам
Гавриленко Сергей Алексеевич
Возможно.

Как, если не секрет?
https://www.sql.ru/forum/actualthread.aspx?tid=127456 , пункт 6. Придумывать за вас название таблиц и полей, а так же тестовые данные, нет никакого желания.
24 июл 12, 16:08    [12909329]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
Бахрам
Member

Откуда:
Сообщений: 308
Гавриленко Сергей Алексеевич
Бахрам
пропущено...

Как, если не секрет?
https://www.sql.ru/forum/actualthread.aspx?tid=127456 , пункт 6. Придумывать за вас название таблиц и полей, а так же тестовые данные, нет никакого желания.


Таблица speedInfo, поля id уникальный id, eventDate время события, speed - скорость.
24 июл 12, 16:16    [12909390]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
Alexandr Kr.
Member

Откуда: Украина, Харьков
Сообщений: 165
Бахрам
1. 0
2. 0
3. 0
4. 0
5. 0
6. 0
7. 15

И как это кусок соотносится с текстом ниже?
Бахрам
Таблица speedInfo, поля id уникальный id, eventDate время события, speed - скорость.


Где тестовые данные?
Кому нужно название вашей таблицы?
24 июл 12, 16:35    [12909513]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Бахрам
Возможно ли в запросе перемещаться по записям пока не значение поля равно нулю, например в такой последовательности

1. 0
2. 0
3. 0
4. 0
5. 0
6. 0
7. 15
Мне нужно выбрать запись с номером 7, точнее предшествующую ей шестую.
Возможно ли так сделать без применения хранимых процедур?


Вот вам пример

with cte as
(
select 0 as value, 1 as idAndOrder
union all select 0, 2 as idAndOrder
union all select 0, 3 as idAndOrder
union all select 0, 4 as idAndOrder
union all select 0, 5 as idAndOrder
union all select 0, 6 as idAndOrder
union all select 15, 7 as idAndOrder
union all select 11, 8 as idAndOrder
)

/*
select top 1
       c.*
  from cte c
 where c.value <> 0
 order 
    by idAndOrder
*/

select c.*
  from cte c
  left
  join cte cPrev
    on 0 <> cPrev.value
   and c.idAndOrder > cPrev.idAndOrder
 where c.value <> 0
   and cPrev.idAndOrder is  null


Но уже судя по фразам а-ля "запросе перемещаться по записям пока не значение поля равно нулю"
понятно что вы мыслите "циклами" и не как БД-ник. Так даже в программировании мыслить не надо.
Пока вы будите иметь такой ход мыслей ("цикличный") не спроектируете нормально решение задачи.

Таких вещей как я написал выше быть НЕ должно в нормальном проекте. И тем более в постановке задачи.
Вы должны всегда знать что получаете. В крайнем случаем "распарсить-преобразовать-..." и потом знать что получаете.
По вашей постановке задачи кажеться что вы вот-вот напишете курсор и будите в курсорном цикле всё это искать.
24 июл 12, 17:14    [12909875]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить