Я хочу объединить две строки. Однако код ниже
set string = string1 || string2
set string = concat (string1, string2)
возвращает null, если одна из строк равна null. Я хотел бы вернуть другую строку, если одна из строк равна нулю.
Это ожидаемое поведение concat. Согласно документам:
Функция возвращает NULL, если любой входной аргумент равен NULL.
Чтобы избежать этого, вы можете использовать функцию IFNULL перед конкатенацией:
set string = ifnull(string1, '') || ifnull(string2, '')
Да, если вам нужно сохранить нулевой регистр, оба являются нулевыми, решение может быть таким: if (a is null, b, if (b is null, a, a || b))
другой вариант
set string = coalesce(string1 || string2, string1, string2)
Недостатком этого подхода является то, что он возвращает ненулевое значение, если обе строки равны нулю.