我想替换(或删除)TSQL-string中的换行符。 什么好主意吗?
最明显的
REPLACE(@string, CHAR(13), '')
就是不去做……
我想替换(或删除)TSQL-string中的换行符。 什么好主意吗?
最明显的
REPLACE(@string, CHAR(13), '')
就是不去做……
当前回答
在SQL Server 2017及以后版本中,使用Trim
Select Trim(char(10) + char(13) from @str)
它注重开头和结尾,而不是中间部分 \r和\n的顺序无关紧要
我用它来修剪文件名的特殊字符
Select Trim(char(10) + char(13) + ' *<>' from @fileName)
其他回答
T-SQL中的换行符由CHAR(13) & CHAR(10)(回车+换行)表示。因此,可以使用要替换换行符的文本创建REPLACE语句。
REPLACE(MyField, CHAR(13) + CHAR(10), 'something else')
REPLACE(@string, CHAR(13) + CHAR(10), '')
到@Cerebrus解决方案:对于字符串“+”的H2不支持。所以:
REPLACE(string, CHAR(13) || CHAR(10), 'replacementString')
有时
REPLACE(myString, CHAR(13) + CHAR(10), ' ')
不能工作。在这种情况下,使用以下片段代码:
REPLACE(REPLACE(myString, CHAR(13),''), CHAR(10), ' ')
实际上,SQL命令或脚本字符串中的新行可以是CR、LF或CR+LF中的任意一个。要得到所有这些,你需要这样的东西:
SELECT REPLACE(REPLACE(@str, CHAR(13), ''), CHAR(10), '')