Как упорядочить по столбцу varchar численно в базе данных Vertica?
Например, мы можем добавить +0 в предложение order by в oracle, чтобы отсортировать столбец varchar численно.
Спасибо!
Как упорядочить по столбцу varchar численно в базе данных Vertica?
Например, мы можем добавить +0 в предложение order by в oracle, чтобы отсортировать столбец varchar численно.
Спасибо!
Использовать приведение как в
select x from foo order by cast(x as int);
Вы получите сообщение об ошибке, если не все значения можно привести к типу int.
Я не делал этого раньше в Vertica, но мой совет такой же для этого типа проблем. Попытайтесь выяснить, как это делает PostgreSQL, и попробуйте это, поскольку Vertica использует много функциональных возможностей PostgreSQL.
Я просто провел быстрый поиск и нашел следующее возможное решение: http://archives.postgresql.org/pgsql-general/2002-01/msg01057.php
Более тщательный поиск может дать вам лучшие ответы.
Если данные действительно числовые, '+0' выполнит преобразование, как вы запросили, но если есть какие-либо значения, которые не могут быть преобразованы, запрос вернет ошибку, подобную следующей:
ОШИБКА: не удалось преобразовать "200 ... что-то" из столбца имя_таблицы.имя_столбца в число.