2016-06-12 48 views
1

我有下列數據的表:不同的值

Row Names 
1 George, George, John, Chris 
2 Helen, John 
3 John, John, John,John 

,我想做出一個新列與下面的輸出

Row Output 
1 George, John, Chris 
2 Helen, John 
3 John 

我怎樣才能在紅移做到這一點SQL

+0

歡迎堆棧溢出!顯示一些代碼,看看你迄今爲止嘗試過的。 –

+2

你不應該在第一個地方存儲逗號分隔值 –

回答

2

由於Amazon Redshift不支持存儲過程或表函數,因此您應該創建一個UDF:

CREATE OR REPLACE FUNCTION f_list_dedup 
(cs_list VARCHAR) 
RETURNS varchar 
IMMUTABLE AS $$ 
    return ','.join(set([x.strip() for x in cs_list.upper().split(',')])) 
$$ LANGUAGE plpythonu; 

然後調用它在您的查詢:

​​