如何在vertica数据库中以数字方式命令varchar列?
例如,我们可以在oracle的order by子句中添加+0,以数字方式对varchar列进行排序。
谢谢!
答案 0 :(得分:2)
在
中使用演员表select x from foo order by cast(x as int);
如果并非所有值都可以转换为int,则会出现错误。
答案 1 :(得分:0)
我以前在Vertica中没有这样做,但我对这类问题的建议是一样的。试着弄清楚PostgreSQL是如何做到这一点并尝试的,因为Vertica正在利用很多PostgreSQL的功能。
我刚刚进行了快速搜索,并提出了一个可能的解决方案:http://archives.postgresql.org/pgsql-general/2002-01/msg01057.php
更彻底的搜索可以为您提供更好的答案。
答案 2 :(得分:0)
如果数据是真正的数字数据,'+ 0'将按照您的要求进行转换,但如果有任何无法转换的值,查询将返回如下错误:
错误:无法将列表table_name.column_name中的“200 ... something”转换为数字