![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Обязательно это делать на сервере? Если да, то чем продиктовано?