Как удалить столбец postgresql

Мой код:

drop table movie;

CREATE TABLE movie
(
imdib varchar NOT NULL,
name varchar NOT NULL,
year integer,
rating varchar,
votes varchar,
runtime varchar,
directors varchar,
actors varchar,
genres varchar
);


 COPY movies FROM '/home/max/Schreibtisch/imdb_top100.txt' (DELIMITER E'\t');

 COPY movies FROM '/home/max/Schreibtisch/imdb_top100t_2015-06-18.csv' (DELIMITER E'\t', FORMAT CSV);


SELECT actors, unnest(string_to_array(actors, '|')) AS Schauspieler from kinofilme;
SELECT directors, unnest(string_to_array(directors, '|')) AS Regisseure from movies;
SELECT genres, unnest(string_to_array(genres, '|')) AS Genrees from movies;

Объяснение для последних 3 утверждений: Жанры, актеры и режиссеры разделены знаком '| (например: Genre: Action|Drama|Thriller) Но я хотел получить только один жанр из жанров (например, получить только Action из Action | Drama | Thriller), поэтому я использовал unnest(string_to_array). Проблема в выходе. Когда я использую SELECT genres, unnest(string_to_array(genres, '|')) AS Genrees from movies; выход:

Жанры (разные символы)______________ Жанры (текст)

  1. Преступление | Драма _____________________ Преступление

  2. Криминал | Драма _____________________ Драма

  3. Действие | Драма _____________________ Действие

  4. Боевик | драма ______________________ драма

Я хочу отбросить первый столбец "Жанры", потому что он мне не нужен для выбора утверждений. Мне нужен только второй столбец "Genrees", где показан каждый отдельный жанр. Как сделать, чтобы этот первый левый столбец назывался "Жанры" или как он "исчезал"? Спасибо в ожидании.

1 ответ

Использовать этот

SELECT regexp_replace(genres,'\|.*','') AS Genrees from movies;

Это вернется

Crime
Action

для вашего примера

Другие вопросы по тегам