powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вопрос знатокам
3 сообщений из 3, страница 1 из 1
Вопрос знатокам
    #39705638
belyaev.vv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста с запросом

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

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

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

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

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


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