Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / IB5.5 - Помогите подобрать функцию / 22 сообщений из 22, страница 1 из 1
09.07.2004, 14:45:54
    #32597481
LizaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
InterBase5.5. Имеется поле таблицы, тип данных - VARCHAR(150).
Помогите, пожалуйста, подобрать функцию которая возвратила бы 8 конечных знаков из каждой строки.
Пример строки:
№дог.0096_Кооператив "Темп"_кафе_75365194_1605334_
Пробовала такой запрос:
SELECT substr(networkitemname,strlen(networkitemname),-8)
from networkitem where networkitemname like '№%'
Возвращает <null> во всех строках.
...
Рейтинг: 0 / 0
09.07.2004, 14:55:58
    #32597512
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
Леся, ты немного неправильно используешь substr(s, n_from, n_to).
2-й параметр у неё - номер начального символа,
3-й - номер конечного.
Так что, нужно подставить примерно следующее:
Код: plaintext
substr(networkitemname, strlen(networkitemname)- 7 , strlen(networkitemname))
...
Рейтинг: 0 / 0
09.07.2004, 15:06:40
    #32597549
LizaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
Да, действительно получила результат. Только вместо 1958 записей вернулось всего 14. И как избавиться от подчеркивания в конце?
...
Рейтинг: 0 / 0
09.07.2004, 15:09:09
    #32597565
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
А оно есть во всех результирующих записях?
...
Рейтинг: 0 / 0
09.07.2004, 15:19:52
    #32597614
LizaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
Да.
...
Рейтинг: 0 / 0
09.07.2004, 15:23:42
    #32597632
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
Ну и уменьши ему хвостик на единичку.
Код: plaintext
substr(networkitemname, strlen(networkitemname)- 7 , strlen(networkitemname)- 1 )
Трудно?
...
Рейтинг: 0 / 0
09.07.2004, 15:30:46
    #32597659
LizaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
Голова после обеда плохо соображает. Конечно не трудно.
Но почему же только 14 записей? /Прошу прощения за настойчивость/
...
Рейтинг: 0 / 0
09.07.2004, 15:33:11
    #32597672
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
Видимо остальные не начинаются с символа ,
как это записано в условии WHERE.
Может там присутсвует другой символ?
...
Рейтинг: 0 / 0
09.07.2004, 15:38:34
    #32597689
LizaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
Запрос
select count(*)
from networkitem where networkitemname like '№%'
возвращает 1958. Надо поэксперементировать.
...
Рейтинг: 0 / 0
09.07.2004, 15:40:27
    #32597698
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
Ну, тогда ты не все записи (извините за выражение) отфетчила. Чем добираешься до базы/проверяешь число записей?
...
Рейтинг: 0 / 0
09.07.2004, 15:55:46
    #32597755
LizaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
IB Expert-ом
...
Рейтинг: 0 / 0
09.07.2004, 16:12:12
    #32597823
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
А нажимаешь "двойную" зеленую стрелочку или "одинарную"?
...
Рейтинг: 0 / 0
09.07.2004, 16:25:07
    #32597864
LizaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
При выполнении "Execute and Fetch all" выпадает сообщение:

Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
A fatal exception occurred during the execution of a user defined function.
arithmetic exception, numeric overflow, or string truncation.
...
Рейтинг: 0 / 0
09.07.2004, 16:33:41
    #32597881
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
Очень предполагаю, что дело в данных.

Найди строки, начинаю с который возникает глюк. Для этого нажав "одинарную" зеленую стрелку, медленно-медленно делаем скроллинг вниз. Строка, следующая за последней отображенной правильно - и будет твоя. Запомни место, убери из запроса

Код: plaintext
substr(networkitemname, strlen(networkitemname)- 7 , strlen(networkitemname))
и повтори операцию. Результаты - в студию (Righ-click - копировать строку в буфер обмена и т.д.)

- думаю, тебе имеет смысл еще анализировать реальную длину строки. Может быть.
...
Рейтинг: 0 / 0
09.07.2004, 17:08:23
    #32597984
vis
vis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
а если так:

Код: plaintext
1.
SELECT networkitemname
FROM networkitem WHERE strlen(networkitemname)< 7 
...
Рейтинг: 0 / 0
12.07.2004, 10:34:30
    #32599166
LizaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
visа если так:

Код: plaintext
1.
SELECT networkitemname
FROM networkitem WHERE strlen(networkitemname)< 7 


Не подходит, потому, что задача - выделить из строки восемь конечных знаков и отбросить последний. А ты предлагаеш вернуть строки, длинна которых меньше чем 7.
...
Рейтинг: 0 / 0
12.07.2004, 10:37:08
    #32599170
vis
vis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
LizaX visа если так:

Код: plaintext
1.
SELECT networkitemname
FROM networkitem WHERE strlen(networkitemname)< 7 


Не подходит, потому, что задача - выделить из строки восемь конечных знаков и отбросить последний. А ты предлагаеш вернуть строки, длинна которых меньше чем 7.

вот именно, чтобы узнать их кол-во
а точнее:
Код: plaintext
1.
SELECT count(*)
FROM networkitem WHERE strlen(networkitemname)< 7 
...
Рейтинг: 0 / 0
12.07.2004, 11:22:03
    #32599269
LizaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
Колличество таких строк - 0. Но у меня в условии присутствует поиск по шаблону like'№% '. Возможно, дело в данных (смотри советы mv) . Я пробовала исключать из поиска строки, на которых поиск прерывается. Но таким методом далеко не уедеш. Придется много исключать.
...
Рейтинг: 0 / 0
13.07.2004, 16:16:31
    #32602188
vis
vis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
по свободе почитал ещё раз топик
я вижу один ответ - какая-то строка, которая начинается с № короче 7 сиволов

проблема ещё актуальна?
...
Рейтинг: 0 / 0
13.07.2004, 18:12:19
    #32602550
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
>проблема ещё актуальна?

Нет

...
Рейтинг: 0 / 0
13.07.2004, 18:26:43
    #32602591
vis
vis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
ну и ладно

ЗЫ. А ты симпатишный :)
...
Рейтинг: 0 / 0
13.07.2004, 19:07:13
    #32602653
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IB5.5 - Помогите подобрать функцию
Johnmen>проблема ещё актуальна?

Нет
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / IB5.5 - Помогите подобрать функцию / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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