0

我有一个 mysql 视图启动并运行。

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

现在我想做的是基本的 if else 声明。

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

如何看待这一点?

编辑:已解决

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,

谢谢你的时间

4

2 回答 2

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
于 2013-10-02T13:44:59.973 回答
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`
于 2013-10-02T13:46:43.637 回答