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