Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите удалить ведущие нули в выборке на VFP 6.0 / 3 сообщений из 3, страница 1 из 1
09.12.2010, 13:45
    #37004390
фпр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите удалить ведущие нули в выборке на VFP 6.0
Привет всем! Есть у нас таблицы в базе ФоксПро сщ строковыми полями, но хранятся там числовые значения и выровнены они нулями слева т.е.:
12345
01133
00032

Нужно написать SELECT который выберет их без ведущих нулей, что-то вроде:

SELECT LTRIM(myfield) FROM mytable

Но вот LTRIM не обрубает символы нулей. Сделать это нужно для Visual FoxPro 6.0...
...
Рейтинг: 0 / 0
09.12.2010, 14:04
    #37004445
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите удалить ведущие нули в выборке на VFP 6.0
Код: plaintext
select PADL(ChrTran(Ltrim(ChrTran(myfield, "0", space( 1 ))), space( 1 ), "0"),  5 ) FROM mytable

Логика такая:

1) Заменяем ВСЕ символы 0 на символ пробела. Заменяются, в том числе, и нули в середине
2) Отсекаем ведущие пробелы через LTRIM()
3) Делаем обратную замену оставшихся пробелов на нули
4) Дополняем строку ведущими пробелами до нужного размера PADL()

Как вариант, можно преобразовать в число, а потом обратно в строку. В этом случае ведущие нули автоматически пропадут. Но это подходит только если общая длина не превышает 15 значений. В противном случае будет риск потери значений

Код: plaintext
select STR(VAL(myfield),  5 ,  0 ) from mytable
...
Рейтинг: 0 / 0
09.12.2010, 14:16
    #37004486
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите удалить ведущие нули в выборке на VFP 6.0
Тут вопрос более сложный... Ну, делаем выборку через val(), например. А вот порядок сортировки конечной выборки каким должен быть? Т.е '00032' должно быть именно числом и оказаться выше '01133'? Или это значение ещё и будет полем связи с другим numeric ?
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите удалить ведущие нули в выборке на VFP 6.0 / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]