sql

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
kasandra
Активный участник
Сообщения: 145
Зарегистрирован: 09 апр 2014, 11:33
Репутация: 2

sql

Сообщение kasandra » 23 ноя 2014, 22:36

Доброго времени суток! С SQL я не очень лажу, поэтому попрошу помощи возможно в элементарном вопросе.

Есть таблица, в одной колонке которой заполнены данными не все строки. Пустые значения нужно заполнить значениями из строки вышележащей.

Пыталась сделать это как-то так
update data.st
SET name_type=(select name_type from data.st where id<id and name_type not like ' ' order by id asc)

или так
if st.name_type not like '' then

UPDATE data.st
SET st.name_type=(select name_type from data.st where id>id order by id desc)
end if


Первый вариант все сносит вообще,а второй принципе не работает, выдает ошибку.
Использую Postgresql.
Буду благодарна за подсказку!

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: sql

Сообщение trir » 24 ноя 2014, 00:10

id=id-1
это если пропусков нет, а так лучше точнее определить термин "вышележащей"

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: sql

Сообщение Ariki » 24 ноя 2014, 01:41

sqlfiddle.com/#!3/30876/1
Upd: Ой, это для SQL Server. Для PostgreSQL будет так:
sqlfiddle.com/#!15/30876/3

Аватара пользователя
gimran
Гуру
Сообщения: 1902
Зарегистрирован: 07 июл 2010, 15:43
Репутация: 242
Откуда: Уфа

Re: sql

Сообщение gimran » 24 ноя 2014, 08:23

UPDATE data.st
SET st.name_type=(select name_type from data.st where name_type not like '' order by id desc);
Так может быть? Хотя не понял до конца логику запроса.

[ Сообщение с мобильного устройства ]

kasandra
Активный участник
Сообщения: 145
Зарегистрирован: 09 апр 2014, 11:33
Репутация: 2

Re: sql

Сообщение kasandra » 24 ноя 2014, 23:11

Спасибо всем, что откликнулись!
Ariki, запрос сработал верно, спасибо.

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость