2016-04-01 4 views
0
SELECT CONCAT_WS(',', Col1, Col2, Col3) AS combined FROM table_name 

В настоящее время, если у меня есть поля Col1 = «привет», Col2 = «Bye», Col2 = «Спокойной ночи»Как прекратить запятая добавляемого с помощью CONCAT_WS если столбец пуст

Вышеизложенные оператора выбора вернусь привет, Пока, Спокойной ночи, это нормально.

Что делать, если какой-либо из Cols пуст. Будет добавлена ​​запятая. как привет, Спокойной ночи.

Есть ли способ сказать, если Col-пуст, а затем игнорировать его? (Это MySQL)

ответ

1

Функция CONCAT_WS игнорирует NULL значения и не создает разделитель, если один из его аргументов NULL.

Для пустой, то есть равно '', значения вы можете использовать NULLIF:

SELECT CONCAT_WS(',', NULLIF(Col1, ''), NULLIF(Col2, ''), NULLIF(Col3, '')) AS combined 
FROM table_name 
1

CONCAT_WS() игнорирует значения NULL (после первого аргумента). Следовательно, ваши пустые значения должны быть пустыми, а не NULL.

Вы можете использовать функцию NULLIF():

SELECT CONCAT_WS(',', NULLIF(Col1, ''), NULLIF(Col2, ''), NULLIF(Col3, '') 
       ) AS combined 
FROM table_name; 
Смежные вопросы