Postgresql9.3选择查询显示错误

时间:2015-06-18 04:52:29

标签: postgresql

以下数据库查询在postgresql9.3上显示以下错误。

SELECT '\'' || t2.name || '\'', '\'' || t1.phone_number || '\'', '\'' || t1.details || '\'', '\'' || t1.description || '\'', '\'' || (CASE WHEN t1.s_id IS NULL THEN 'N/A' ELSE t3.s_type END) || '\'', '\'' || t1.s_id || '\'' FROM abc_tble AS t1 LEFT JOIN pqrtable AS t2 ON t1.s_id = nid LEFT JOIN te AS t3 ON t1.s_id = t3.s_id;

无效的命令\''。试试\?寻求帮助。

但是上面的查询在postgresql8.3中工作正常。

1 个答案:

答案 0 :(得分:1)

  

但是上面的查询在Postgres 8.3中工作正常。

SQL标准定义了两个单引号来转义文字内的一个:''''

Postgres 8.3默认为非标准行为,允许使用反斜杠转义单引号:'\''

始终不鼓励与SQL标准的偏差,可以通过配置参数standard_conforming_strings

来控制

对于9.1版,此参数的默认值已从off更改为on。当您使用非标准方式转义单引号时,版本8.1及更高版本会发出警告(除非您明确将其关闭)