Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL转换错误_Sql_Postgresql - Fatal编程技术网

PostgreSQL转换错误

PostgreSQL转换错误,sql,postgresql,Sql,Postgresql,我尝试按转换的列进行排序,但psql返回错误: 按转换从表顺序中选择*(col1使用 utf8至iso 8859 2) 错误:在“使用”第1行或其附近出现语法错误:从中选择* 表按转换顺序排列(col1使用utf8。。。 ^ ***错误*** 错误:语法错误位于或接近“正在使用”SQL状态:42601 我以前也看到过类似的函数,文档中也有,所以我不明白为什么会出现此错误。我遗漏了什么吗?您可能想使用: CONVERT(col1, 'iso-8859-2') 要将col1(文本)转换为iso-8

我尝试按转换的列进行排序,但psql返回错误:

按转换从表顺序中选择*(col1使用 utf8至iso 8859 2)

错误:在“使用”第1行或其附近出现语法错误:从中选择* 表按转换顺序排列(col1使用utf8。。。 ^

***错误***

错误:语法错误位于或接近“正在使用”SQL状态:42601


我以前也看到过类似的函数,文档中也有,所以我不明白为什么会出现此错误。我遗漏了什么吗?

您可能想使用:

CONVERT(col1, 'iso-8859-2')

要将col1(文本)转换为iso-8859-2(bytea),假设您的数据库存储为utf-8。
convert
convert\u to
convert\u from
如下表9-6所示:

您可能打算使用:

CONVERT(col1, 'iso-8859-2')
要将col1(文本)转换为iso-8859-2(bytea),假设您的数据库存储为utf-8。
convert
convert\u to
convert\u from
如表9-6所示:

看起来您混合了两个功能。一个是,在
ORDER BY
子句中这是有意义的:

SELECT * FROM table ORDER BY col1 COLLATE "fr_FR";
另一种是将字符串从源编码转码到定义的目标编码:

SELECT convert('my_string', 'UTF8', 'ISO_8859_2')
但这对排序顺序没有影响-除了使用locale
C
bytea
列之外。

看起来您混合了两个功能。一个是,这在
order BY
子句中是有意义的:

SELECT * FROM table ORDER BY col1 COLLATE "fr_FR";
另一种是将字符串从源编码转码到定义的目标编码:

SELECT convert('my_string', 'UTF8', 'ISO_8859_2')

但这对排序顺序没有影响-除了使用locale
C
bytea
列之外。

谢谢,按COLLATE排序正是我所需要的。我不得不将psql从8.4升级到9.1,但幸运的是,这非常简单。@GvS:酷!而且v9.1也不会有任何影响。有很多闪亮的新东西。:)谢谢,我需要的正是通过核对订购。我不得不将psql从8.4升级到9.1,但幸运的是这相当容易。@GvS:酷!v9.1也不会有什么坏处。很多闪亮的新东西。:)