Redshift:如何删除字段中的所有换行符
Redshift: how to remove all newline characters in a field
我想知道如何从字段中删除 Redshift 中的所有换行符。我试过这样的事情:
replace(replace(body, '\n', ' '), '\r', ' ')
和
regexp_replace(body, '[\n\r]+', ' ')
但是没有用。如果您知道如何执行此操作,请分享。
使用chr(10)
代替\n
示例:
select replace(CONCAT('Text 1' , chr(10), 'Text 2'), chr(10), '-') as txt
这应该有帮助
regexp_replace(column, '\r|\n', '')
其他两个答案都不适合我(不确定 Redshift 是否自 2015 年以来更新了其对正则表达式的处理?),但我使用以下方法取得了成功:
regexp_replace(field_name, '[\n|\r]*')
要删除换行符:
SELECT REPLACE('This line has
a line break', CHR(10), '');
这给出了输出:This line hasa line break
。您可以在此处查看更多 ASCII 或 CHR()
代码:https://www.petefreitag.com/cheatsheets/ascii-codes/
删除\r、\n、\t等特殊字符
假设 col1
有类似 This line has\r\n special characters
的文本。
使用replace()
SELECT REPLACE(REPLACE(col1, '\r', ''), '\n', '');
我们需要转义 \
因为反斜杠在 SQL 中是特殊字符(用于转义双引号等...)
使用regexp_replace()
SELECT REGEXP_REPLACE(col1, '(\\r|\\n)', '');
我们需要对 \
进行转义,因为它是 SQL 中的一个特殊字符,我们需要再次对生成的反斜杠进行转义,因为反斜杠在正则表达式中也是一个特殊字符。
replace()
和 regexp_replace()
都给出输出:This line has special characters
.
我想知道如何从字段中删除 Redshift 中的所有换行符。我试过这样的事情:
replace(replace(body, '\n', ' '), '\r', ' ')
和
regexp_replace(body, '[\n\r]+', ' ')
但是没有用。如果您知道如何执行此操作,请分享。
使用chr(10)
代替\n
示例:
select replace(CONCAT('Text 1' , chr(10), 'Text 2'), chr(10), '-') as txt
这应该有帮助
regexp_replace(column, '\r|\n', '')
其他两个答案都不适合我(不确定 Redshift 是否自 2015 年以来更新了其对正则表达式的处理?),但我使用以下方法取得了成功:
regexp_replace(field_name, '[\n|\r]*')
要删除换行符:
SELECT REPLACE('This line has
a line break', CHR(10), '');
这给出了输出:This line hasa line break
。您可以在此处查看更多 ASCII 或 CHR()
代码:https://www.petefreitag.com/cheatsheets/ascii-codes/
删除\r、\n、\t等特殊字符
假设 col1
有类似 This line has\r\n special characters
的文本。
使用replace()
SELECT REPLACE(REPLACE(col1, '\r', ''), '\n', '');
我们需要转义 \
因为反斜杠在 SQL 中是特殊字符(用于转义双引号等...)
使用regexp_replace()
SELECT REGEXP_REPLACE(col1, '(\\r|\\n)', '');
我们需要对 \
进行转义,因为它是 SQL 中的一个特殊字符,我们需要再次对生成的反斜杠进行转义,因为反斜杠在正则表达式中也是一个特殊字符。
replace()
和 regexp_replace()
都给出输出:This line has special characters
.