将多行Varchar变量转换为一行

时间:2014-08-07 16:30:16

标签: sql sql-server sql-server-2008 tsql

好吧,我有一个接受邮政编码列表的变量。我希望能够垂直输入这些邮政编码,用逗号表示。然后,我想删除这些段落字符,将此列表转换为所有一行文本。

这是我到目前为止所做的,我试图用什么都没有替换用于新线的控制字符,我不知道这是否可能,这只是我的第一个想法:

SET @zip_list = 
'
44654,
15219,
15219,
15219,
' --this is my list of zip codes, place a , after every zip. 
        ---------------------------------
        print @zip_list
        SET @zip_list = replace(@zip_list,CHAR(13),'')  --Remove new line character to place zip codes all onto one line

这是否可能,或许我只是想替换错误的控制角色?

1 个答案:

答案 0 :(得分:0)

Windows上的换行符是CR + LF。您只删除CR(CHAR(13))您需要将其包含在另一个REPLACE

SET @zip_list = REPLACE(REPLACE(@zip_list,CHAR(13),''),CHAR(10),'')