String PostgreSQL换行符

String PostgreSQL换行符,string,postgresql,newline,String,Postgresql,Newline,如何在PostgreSQL中使用换行符 这是我实验中的错误脚本: select 'test line 1'||'\n'||'test line 2'; 我希望sql编辑器显示上述脚本的结果: test line 1 test line 2 但不幸的是,当我在sql编辑器中运行脚本时,我只是从脚本中得到了这个结果: test line 1 test line 2 反斜杠在SQL中没有特殊含义,因此'\n'是一个反斜杠,后跟字符n 要在字符串文字中使用“转义序列”,您需要使用: 另一个选项是使

如何在
PostgreSQL
中使用
换行符

这是我实验中的错误脚本:

select 'test line 1'||'\n'||'test line 2';
我希望
sql编辑器
显示上述脚本的结果:

test line 1
test line 2
但不幸的是,当我在sql编辑器中运行脚本时,我只是从脚本中得到了这个结果:

test line 1 test line 2

反斜杠在SQL中没有特殊含义,因此
'\n'
是一个反斜杠,后跟字符
n

要在字符串文字中使用“转义序列”,您需要使用:

另一个选项是使用
chr()
函数:

select 'test line 1'||chr(10)||'test line 2';
或者简单地将换行符放在字符串常量中:

select 'test line 1
test line 2';

这是否在SQL客户机中实际显示为两行取决于SQL客户机


更新:来自@thedayturns的一个很好的答案,在这里您可以有一个更简单的查询:


E'测试行1\n测试行2'

可能重复@Elad,我的问题是关于“选择”查询。要读取表中的数据,请插入“创建”。一匹没有名字的马的答案现在足以解决我的问题了。
你在新行文字之前缺少了e
的答案与这里给你的答案相同。在我的代码中,这部分的意思是“'| |'\n'| |'”?只扩展字符串的新行字符部分有点傻,对吗?您可以只做
E'测试行1\n测试行2'
@thedayturns谢谢。我成功地使用了您的答案来查询包含序列化数据的列(具体来说是YAML字符串,如
{my_data:[{data_type:'MyType',data_id:113}]}
)。例如,
select*from table\u name,其中column\u name=e'-\n:my\u data:\n-:data\u type:MyType\n:data\u id:113\n'
谢谢@a\u horse\u和\u no\u name!
E'测试线1\n测试线2'
中前面的
E
做什么?这就是我的解决办法。@Sampson:
select 'test line 1
test line 2';