1

如何在 vertica 数据库中按数字排序 varchar 列?

例如,我们可以在 oracle 的 order by 子句中添加 +0 来对 varchar 列进行数字排序。

谢谢!

4

3 回答 3

2

使用 cast 如下

select x from foo order by cast(x as int);

如果并非所有值都可以转换为 int,则会出现错误。

于 2011-11-16T18:09:05.730 回答
0

我以前在 Vertica 中没有这样做过,但是对于这类问题,我的建议是相同的。尝试弄清楚 PostgreSQL 是如何做到的,并尝试这样做,因为 Vertica 正在利用大量 PostgreSQL 功能。

我只是做了一个快速搜索并想出了一个可能的解决方案:http: //archives.postgresql.org/pgsql-general/2002-01/msg01057.php

更彻底的搜索可能会为您提供更好的答案。

于 2011-11-10T14:04:05.833 回答
0

如果数据是真正的数字数据,“+0”将按照您的要求进行转换,但如果有任何值无法转换,则查询将返回如下错误:

错误:无法将 table_name.column_name 列中的“200 ... something”转换为数字

于 2011-11-10T14:49:39.233 回答