Mirieri Mogaka
Mirieri Mogaka

Reputation: 561

Concatenate only when all values are true in mysql

The following is the query I have used to concatenate siretagprefix and siretagsec

CONCAT('TZN',
            `adggtnz`.`reg04_rpt_animreg`.`siretagprefix`,
            `adggtnz`.`reg04_rpt_animreg`.`siretagsec`) AS `siretagid`,

The result of the query when siretagprefix and siretagsec when the values are null, I get TZN as the result. How can I concatenate only when all the values are true.

enter image description here

Upvotes: 4

Views: 42

Answers (2)

M Khalid Junaid
M Khalid Junaid

Reputation: 64496

You could use CASE to check your column values

CASE WHEN `adggtnz`.`reg04_rpt_animreg`.`siretagprefix` IS NOT NULL
      AND `adggtnz`.`reg04_rpt_animreg`.`siretagsec` IS NOT NULL
THEN
    CONCAT('TZN',
                `adggtnz`.`reg04_rpt_animreg`.`siretagprefix`,
                `adggtnz`.`reg04_rpt_animreg`.`siretagsec`)
ELSE NULL END AS siretagid

Upvotes: 2

Mureinik
Mureinik

Reputation: 312219

You could use a case expression:

CASE WHEN `adggtnz`.`reg04_rpt_animreg`.`siretagprefix` IS NOT NULL AND
          `adggtnz`.`reg04_rpt_animreg`.`siretagsec`    IS NOT NULL
     THEN CONCAT('TZN',
                 `adggtnz`.`reg04_rpt_animreg`.`siretagprefix`,
                 `adggtnz`.`reg04_rpt_animreg`.`siretagsec`)
END AS `siretagid`

Upvotes: 0

Related Questions