Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вопрос знатокам / 3 сообщений из 3, страница 1 из 1
20.09.2018, 14:22
    #39705638
belyaev.vv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос знатокам
Подскажите пожалуйста с запросом

Нужен такой запрос:

Поменять значение на рандомное (от 5 до 20) в таблице N в строке Y за 2016 год
Спасибо.
...
Рейтинг: 0 / 0
20.09.2018, 14:57
    #39705655
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос знатокам
belyaev.vvПодскажите пожалуйста с запросом

Нужен такой запрос:

Поменять значение на рандомное (от 5 до 20) в таблице N в строке Y за 2016 год
Спасибо.

давайте ваш вариант, покритикуем
...
Рейтинг: 0 / 0
21.09.2018, 11:53
    #39706044
FanRammstein
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос знатокам
Ай возможно кривое решение, но первое что в голову пришло
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
CREATE OR REPLACE FUNCTION public.f_return_random(min integer, max integer)
  RETURNS integer AS
$BODY$
DECLARE 
	min_val integer = min;
	max_val integer = max;
	curr_val integer;
	run_while boolean = TRUE;
BEGIN
	SELECT (random() * max_val)::integer INTO curr_val;
	WHILE(run_while) LOOP
		IF curr_val > min_val AND run_while = TRUE THEN
			run_while = FALSE;
		ELSE
			SELECT (random() * max_val)::integer into curr_val;
		END IF;
	END LOOP;
	RETURN curr_val;
END

$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.f_return_random(integer, integer)
  OWNER TO _postgres;


DO $$
DECLARE upd_rec record;
BEGIN
    FOR upd_rec IN SELECT id_n FROM n WHERE to_char(date_create, 'yyyy')::integer = 2016  LOOP
        UPDATE n SET y = (SELECT f_return_random FROM f_return_random(5,20)) WHERE id_n = upd_rec.id_n ;
    END LOOP;
END$$;



Если кто-то поправить то что тут получилось буду благодарен.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вопрос знатокам / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]