2013-10-02 3 views
0

У меня есть просмотр mysql.MYSQL view условная вставка

concat(`dp`.`fld_name`, 
      ' ', 
      `mt`.`fld_model`, 
      ' ', 
      `m`.`fld_diameter_nominal`) AS `fld_meter_type_info`, 

Теперь то, что я хочу сделать, является основным, если указано другое.

if(fld_type == 1 || fld_type == 4) -> get rid of fld_diameter_nominal in concat 
else -> same concat 

Как это сделать?

EDIT: решаемые

concat(dp.fld_name, 
     ' ', 
     mt.fld_model, 
     ' ', 
     case when `m`.`fld_type` in (1,4) 
      then '' 
      else m.fld_diameter_nominal 
     end 
    ) AS fld_meter_type_info, 

Спасибо за ваше время

ответ

2
concat(dp.fld_name, 
      ' ', 
      mt.fld_model, 
      ' ', 
      case when fld_type in (1,4) 
       then '' 
       else m.fld_diameter_nominal 
      end 
     ) AS fld_meter_type_info 
+0

Любой шанс, что вы могли бы вставить дополнительный ")" в случае? Поскольку он дает ошибку синтаксиса – FreshPro

+0

Я удалил ненужный –

+0

Ошибка: при применении SQL-скрипта к базе данных произошла ошибка. В чем проблема, я не понимаю – FreshPro

0

Попробуйте ::

Select 
CASE WHEN fld_type in (1,4) 
THEN oncat(`dp`.`fld_name`,' ',`mt`.`fld_model`) 
ELSE 
concat(`dp`.`fld_name`,' ', `mt`.`fld_model`,' ', `m`.`fld_diameter_nominal`) END AS `fld_meter_type_info` 
+0

Не работает синтаксическая ошибка – FreshPro

+0

@FreshPro: Забыл ключевое слово' end', обновил запрос любезно проверкой –

Смежные вопросы