Mysql Создание VIEW с CONCAT и двумя столбцами - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь создать представление с двумя дополнительными полями. У меня есть этот код, который делает работу с одним дополнительным поданным

CREATE VIEW STRANKEPView AS (
    SELECT *, COALESCE(CONCAT('P-',strp_ID)) AS strp_nas_br
    FROM STRANKEP 
);

Мне нужно добавить еще один поданный как

CONCAT('A',strp_aa, '.')) AS strp_aa_nas_br

Я не могу найти пример этого нигде и что бы я ни попробовал не работает. Как я могу присоединиться к этому? Что-то вроде строки:

CREATE VIEW STRANKEPView AS (
    SELECT *, COALESCE(CONCAT('P-',strp_ID)) AS strp_nas_br 
    AND COALESCE(CONCAT('A',strp_aa,'.')) AS strp_aa_nas_br
    FROM STRANKEP 
);

Или мне нужна возможность изменить ВИД, который я создал с первым утверждением. Но когда я делаю это, я получаю ошибку, что STRANKEPView не является таблицей

ALTER VIEW STRANKEPView AS (
    SELECT *, COALESCE(CONCAT('A',strp_aa,'.')) AS strp_aa_nas_br
    FROM STRANKEPView 
);

1 Ответ

2 голосов
/ 14 марта 2020

Чтобы изменить существующее представление, вы используете ALTER VIEW.

Выбранные вами поля разделяются ,, а не AND.

ALTER VIEW STRANKEPView AS (
    SELECT *, CONCAT('P-',strp_ID) AS strp_nas_br,
              CONCAT('A',strp_aa,'.') AS strp_aa_nas_br
    FROM STRANKEP 
);

Нет смысла при использовании COALESCE() только с одним аргументом, поэтому я удалил его из представления. Цель COALESCE() - вернуть альтернативное значение, если аргумент NULL; это ничего не даст, если вы не предоставите альтернативное значение.

...