Страница 1 из 1
select max(varchar)
Добавлено: 24 май 2007, 17:27
Solo
в таблице номера содержатся в поле NDOC типа varchar (длина 6)
Но содержатся в нем только цифровые значения:
000123
000124
000156
...
008456 и т.д.
При запросе select max(insured.ndoc) from insured это дело будет работать нормально, как с числовыми значениями или нет?
То-есть между 001000 и 000808 будет ли выбор 001000?
Добавлено: 24 май 2007, 17:56
Solo
И вообще, как перевести строку в число и обратно, никогда вот не сталкивался и не могу в релизнотсе найти. Вроде паскалевских IntToStr b StrToInt
Добавлено: 24 май 2007, 18:38
Attid
Код: Выделить всё
cast(pole1 as integer)
cast(pole1 as varchar(10))
Добавлено: 24 май 2007, 18:57
WildSery
Для строк, выровненных нулями до одинаковой длины, любые сравнения, как и нахождения макс/мин, равноценны целочисленным сравнениям.
Добавлено: 25 май 2007, 08:38
Solo
WildSery писал(а):Для строк, выровненных нулями до одинаковой длины, любые сравнения, как и нахождения макс/мин, равноценны целочисленным сравнениям.
Именно выровненными. Там даже триггер специально за этим следит. То-есть, я могу искать макс так же, как и в Integer - поле, да? Это хорошо
Добавлено: 25 май 2007, 08:51
CyberMax
Solo писал(а):То-есть, я могу искать макс так же, как и в Integer - поле, да?
Это следствие выровненности и того, что код символа "0" меньше кода символа "1" и т.д.