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

現在、フィールドが Col1 = 'hello'、Col2 = 'Bye'、Col2 = 'Goodnight' の場合

上記の select ステートメントは、hello,Bye,Goodnight を返しますが、これで問題ありません。

列のいずれかが空白の場合はどうなりますか。コンマは引き続き追加されます。こんにちは、おやすみなさい。

Col が空の場合は無視する方法はありますか? (これはMySQLです)

4

2 に答える 2

6

引数のいずれかが の場合、関数は値をCONCAT_WS無視し、セパレータを生成しません。NULLNULL

空の値、つまり に等しい''値の場合は、次の値を使用できますNULLIF

SELECT CONCAT_WS(',', NULLIF(Col1, ''), NULLIF(Col2, ''), NULLIF(Col3, '') ) AS combined 
FROM table_name
于 2016-04-01T11:50:07.287 に答える
3

CONCAT_WS()値を無視しNULLます (最初の引数の後)。したがって、空白の値は空の文字列である必要があり、NULL.

NULLIF()次の関数を使用できます。

SELECT CONCAT_WS(',', NULLIF(Col1, ''), NULLIF(Col2, ''), NULLIF(Col3, '')
                ) AS combined
FROM table_name;
于 2016-04-01T11:49:58.297 に答える