gjghjc
Какая версия сервера?
для Yaffil :
REPLACE, STUFF, TRANSLATE, SIMILAR, ISDIGIT
Функция TRIM удаляет ведущие и/или конечные символы из строки. Её синтаксис таков:
TRIM ({ {LEADING|TRALING|BOTH} <string expression> FROM }<string expression> )
Если не один из параметров LEADING|TRALING|BOTH не задан, то принимается параметр по умолчанию BOTH. Если задан только один параметр <string expression>, то первый параметр считается равным BOTH, а второй единичному символу пробел.
Пример:
trim('a' from 'a134fa') результат '134f'
trim(' a134fa ') результат 'a134fa'
trim(leading 'a' from 'a134fa') результат 'a134f'
trim(trailing 'abc' from 'a134fabc') результат 'a134f'
Функция PAD противоположна функции TRIM. Она дополняет строку заданными символами до необходимого размера. Также как и функция TRIM, она может дополнять ведущими символами и/или конечными символами. Синтаксис:
PAD ({ {LEADING|TRALING|BOTH} <string expression> FROM }<string expression> FOR <numeric expression>)
Если не один из параметров LEADING|TRALING|BOTH не задан, то принимается параметр по умолчанию BOTH. Если задан только один параметр <string expression>, то первый параметр считается равным BOTH, а второй единичному символу пробел. Параметр <numeric expression> задаёт необходимое количество символов новой строки.
Пример:
PAD('a' FOR 11) результат ' A '
Функция POSITION производит поиск позиции первого вхождения подстроки в строке. Синтаксис:
POSITION ( <substring> IN <string>)
Функция LEFT[1] возвращает заданное количество символов с начала строки. Синтаксис:
LEFT (<string>, <length>)
Функция RIGHT[2] возвращает заданное количество символов с конца строки. Синтаксис:
RIGHT (<string>, <length>)
[1] Аналог функции LEFT в реализации MSSQL
[2] Аналог функции RIGHT в реализации MSSQL
Вот пример того, что тебе нужно
Скрипт на создание БД и заполнение данными:
/******************************************************************************/
/*** Generated by IBExpert 2007.05.20 23.05.2007 14:45:28 ***/
/******************************************************************************/
SET NAMES NONE;
CREATE DATABASE 'c:\Test.gdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 8192
DEFAULT CHARACTER SET NONE;
/******************************************************************************/
/*** Tables ***/
/******************************************************************************/
CREATE TABLE NEW_TABLE (
NEW_FIELD INTEGER
);
INSERT INTO NEW_TABLE (NEW_FIELD) VALUES (1);
INSERT INTO NEW_TABLE (NEW_FIELD) VALUES (2);
INSERT INTO NEW_TABLE (NEW_FIELD) VALUES (3);
INSERT INTO NEW_TABLE (NEW_FIELD) VALUES (4);
INSERT INTO NEW_TABLE (NEW_FIELD) VALUES (5);
COMMIT WORK;
/******************************************************************************/
/*** Privileges ***/
/******************************************************************************/
/* Privileges of users */
GRANT SELECT ON RDB$ROLES TO PUBLIC;
И сам запрос:
select PAD(LEADING '0' from cast(new_field as varchar(12)) for 6) FROM new_table
Результат:
PAD
000001
000002
000003
000004
000005
Моя версия версия сервера Server Version: NI-1.5.892 Yaffil SQL Server
Как я знаю в FireBird 2.0 функции Yaffil поддерживаются.
Удачи!
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.
Аватара (с) Тёмыч