Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SQL запрос [D7, XP]


Sw ©   (2008-04-16 09:10:00) 

База Interbase: мне нужно из поля name удалить первые 11 символов и последние 3, т.е. извлечь часть строки
Substring(name from 12 for 40)работает, но длина строки неизвестна, вместо значения 40 использую length(name)-3 - ругается SQL error code = -104.
Помогите отдельно получить строки без первых и последних символов получается:
select
(f_right(name, f_stringlength(name)-11)),
(f_left(name, f_stringlength(name)-3))
from table1

((((но мне нужно что-то вроде как функция Copy в Delphi((Помогите, пож-та


Sw   (2008-04-16 11:03:00) [1]

наверно буду в переменную присваивать сначала значение без первых символов, а потом без последних
name=(f_right(name, f_stringlength(name)-11));
name=(f_left(name, f_stringlength(name)-3));
 (((


Sw   (2008-04-16 10:49:00) [2]

т.е. l(integer)


Sw   (2008-04-16 10:47:00) [3]

Function unknown.SUBSTR.

только в таком варианте работает:
SELECT SUBSTRING(NAME from 2 for 10) FROM TABLE
и через переменную не работает i(integer)
l=f_stringlength(name); name=substring(name from 12 for l);


palva   (2008-04-16 10:24:00) [4]

Похоже, что родная SUBSTRING принимает только константы. Используйте UDF типа:
SELECT SUBSTR(STATE_NAME, 2, STRLEN(STATE_NAME)-1) FROM STATE_TABLE


Sw   (2008-04-16 09:57:00) [5]


> palva ©   (16.04.08 09:43) [2]

есть f_stringlength(name) - работает, но в Substring(name from 12 for ..) подставляю - ругается


palva   (2008-04-16 09:43:00) [6]

STRLEN - есть такая стандартная UDF. Если у вас в базе установлена, конечно.


Johnmen   (2008-04-16 09:34:00) [7]

Обязательно это делать на сервере? Если да, то чем продиктовано?


Наверх

Титульная страница Поиск, карта сайта Написать письмо