2013-08-24 5 views
1

У меня есть представление, и я хочу изменить нули в столбце со словом: other.Создать представление и заменить нулевые значения словом

Это то, что я пытался до сих пор:

CREATE VIEW APB1 AS 
    SELECT jos_jam.postcode, location_id, description, 
     category, apb.street, location, apb 
    FROM jos_jam 
    LEFT JOIN apb 
    ON jos_jam.postcode=apb.postcode; 
    FROM apb 
    UPDATE APB1 SET apb = 'Other' where apb is null 

Это не правильно заменить значения, я также пытался:

CREATE VIEW APB1 AS 
    SELECT jos_jam.postcode, location_id, description, 
     category, apb.street, location, apb 
    FROM jos_jam 
    LEFT JOIN apb 
    ON jos_jam.postcode=apb.postcode; 
    REPLACE(apb.apb, 'NULL') as 'Other' 
    FROM apb 

Я получаю следующее сообщение об ошибке для второго запроса:

#1064 - You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use 
near 'FROM apb 
UPDATE APBVolunteers4 SET apb = 'Other' where apb is null' at line 1 

Что означает эта ошибка и как заменить нулевые значения словом в представлении?

ответ

1

Сообщение об ошибке относится к точке с запятой перед словом FROM в первом запросе или словом «Заменить во втором запросе».

Вы не можете поместить инструкцию обновления в инструкцию создания представления. Похоже, вы пытались обновить базу данных, а не обновлять то, что возвращается в представлении.

Также вам не нужно от APB в нижней части вашего заявления.

Оператор COALESCE() возвращает первое ненулевое значение в свой список аргументов.

Я думаю, что это должно работать:

CREATE VIEW APB1 AS 
    SELECT jos_jam.postcode, location_id, description, category, apb.street, 
    location, COALESCE(apb, 'Other') as apb 
FROM jos_jam 
LEFT JOIN apb 
    ON jos_jam.postcode=apb.postcode 
Смежные вопросы