172 похожих чатов

Народ, есть такая задача. Подскажите, как можно к ней подступиться?


Имеется таблица. Пусть будет 10 полей. Идентификатор первичный ключ и 9 полей с одинаковым типом (пусть varchar).
Эти 9 полей случайно заполнены произвольными значениями и null-ами.
Требуется в каждой записи сдвинуть поля со значениями максимально влево, а с null-ами соответственно вправо.
Для СУБД postgres v12

1 ответов

7 просмотров

Как насчёт "путём отрывания рук тому, кто придумал такую схему"? ;( Ну вот так, например: WITH x (id, f1, f2, f3, f4, f5, f6, f7, f8, f9) AS ( VALUES (1, NULL, 'test', NULL, 'test1', 'test3', NULL, NULL, 'test4', 'test5'), (2, NULL, NULL, 'test', 'test1', NULL, 'test3', NULL, NULL, NULL) ) SELECT x.*, a.s[1] AS g1, a.s[2] AS g2, a.s[3] AS g3, a.s[4] AS g4, a.s[5] AS g5, a.s[6] AS g6, a.s[7] AS g7, a.s[8] AS g8, a.s[9] AS g9 FROM x CROSS JOIN LATERAL ( SELECT array_agg(u.e ORDER BY u.n) FILTER (WHERE u.e IS NOT NULL) AS s FROM unnest(ARRAY[x.f1, x.f2, x.f3, x.f4, x.f5, x.f6, x.f7, x.f8, x.f9]) WITH ORDINALITY AS u(e, n) ) AS a;

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта