hivesql的concat和concat_ws都是字符串连接函数,不同之处在于:
-
concat函数只能通过逗号分隔连接的字符串拼接在一起,而concat_ws函数可以通过一个指定的分隔符连接字符串。
-
一旦字符串参数被传给concat函数,它们就被视为不可分离的元素,这意味着如果其中一个参数是NULL,那么整个concat的结果将为NULL。而在concat_ws函数中,分隔符不会被插入NULL值,因此连接NULL值的字符串时,concat_ws函数会将NULL值视为一个空字符串,而不是NULL。
示例:
-- concat函数示例
SELECT CONCAT('hello', ', ', 'world'); -- "hello, world"
SELECT CONCAT('hello', NULL, 'world'); -- NULL
-- concat_ws函数示例
SELECT CONCAT_WS(', ', 'hello', 'world'); -- "hello, world"
SELECT CONCAT_WS(', ', 'hello', NULL, 'world'); -- "hello, world"