powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / помогите с запросом
9 сообщений из 9, страница 1 из 1
помогите с запросом
    #39015105
lizogub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что здесь не так? почему-то не работает
SELECT MIN(s.tabn), MAX(s.tabn) FROM staff$base s
where length (s.tabn) = 10
and to_number(substr (s.tabn, 1,1)) between 1 and 9,
to_number(substr (s.tabn, 1,1)) between 1 and 9,
to_number(substr (s.tabn, 2,1)) between 1 and 9,
to_number(substr (s.tabn, 3,1)) between 1 and 9,
to_number(substr (s.tabn, 4,1)) between 1 and 9,
to_number(substr (s.tabn, 6,1)) between 1 and 9,
to_number(substr (s.tabn, 7,1)) between 1 and 9,
to_number(substr (s.tabn, 8,1)) between 1 and 9,
to_number(substr (s.tabn, 9,1)) between 1 and 9,
and check_inn_crc(s.tabn) = 1
...
Рейтинг: 0 / 0
помогите с запросом
    #39015149
lizogub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lizogub,
и такой запрос вроде как правельный но не работает
SELECT MIN(s.tabn), MAX(s.tabn) FROM staff$base s
where length (s.tabn) = 10
and to_number(s.tabn)<> 1
and check_inn_crc(s.tabn) = 1
...
Рейтинг: 0 / 0
помогите с запросом
    #39015281
pand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lizogublizogub,
и такой запрос вроде как правельный но не работает
SELECT MIN(s.tabn), MAX(s.tabn) FROM staff$base s
where length (s.tabn) = 10
and to_number(s.tabn)<> 1
and check_inn_crc(s.tabn) = 1

а что дулает функция to_number(s.tabn)<> 1 ? в первом запросе она вроде как возвращает число от 1 до 9
если нужно проверить валидность числа есть isnumeric (string )
...
Рейтинг: 0 / 0
помогите с запросом
    #39015844
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lizogub,

Как задавать вопрос

[quote 1) Всегда указывайте версию своего сервера.
Фирма Sybase продает под своим именем несколько очень разных баз данных с очень разными возможностями.
Узнать имя и версию своего сервера (в большинстве баз данных) можно командой:
select @@version
Если не помогло - спросите у своего администратора.

2) Если вы хотите помощи в составлении запроса:
Приведите скрипт создающий временную таблицу и наполняющий эту таблицу тестовыми данными.
Потом покажите какой результат вы ожидаете получить и объясните его.[/quote]
...
Рейтинг: 0 / 0
помогите с запросом
    #39015909
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lizogub,
Посмотрите план запроса, по нему будет ясно где у вас провал, также можно посмотреть на запрос
SELECT (s.tabn FROM staff$base s where length (s.tabn) = 10 and to_number(s.tabn)<> 1 and check_inn_crc(s.tabn) = 1 order by s.tabn
может ошибка уже здесь
после чего можно попробовать посмотреть
SELECT MIN(s.tabn), MAX(s.tabn) FROM staff$base s where s.tabn=any(
select tabn from staff$base where length(tabn) = 10 and to_number(tabn)<> 1 and check_inn_crc(tabn) = 1 )

Ну и последнее, если правильно я понял вы хотите определиться с границами, в которых у вас имеется tabn?
...
Рейтинг: 0 / 0
помогите с запросом
    #39016647
vologdabobr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lizogub...
and to_number(substr (s.tabn, 1,1)) between 1 and 9,
to_number(substr (s.tabn, 1,1)) between 1 and 9,
to_number(substr (s.tabn, 2,1)) between 1 and 9,
to_number(substr (s.tabn, 3,1)) between 1 and 9,
to_number(substr (s.tabn, 4,1)) between 1 and 9,
to_number(substr (s.tabn, 6,1)) between 1 and 9,
to_number(substr (s.tabn, 7,1)) between 1 and 9,
...
Меня так смущают запятые здесь. В ASA такая конструкция не прокатит
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
 ...and  to_number(substr (s.tabn, 1,1)) between 1 and 9
and
 to_number(substr (s.tabn, 1,1)) between 1 and 9
and
 to_number(substr (s.tabn, 2,1)) between 1 and 9
and
 to_number(substr (s.tabn, 3,1)) between 1 and 9
and
 ...
...
Рейтинг: 0 / 0
помогите с запросом
    #39016683
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
27.07.2015 12:55, vologdabobr пишет:

> Меня так смущают запятые здесь. В ASA такая конструкция не прокатит

Начнём с того, что в ASA нет функции to_number() ;).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите с запросом
    #39016759
vologdabobr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dim2000, НУ я сделал предположение, что это некая самописная функция, которая возвращает необходимый результат.
Что-то вроде
Код: sql
1.
2.
3.
4.
Create Or Replace Function USERNAME.to_number ( in @number_data char(1) )
BEGIN
return convert(integer,@number_data);
End;
...
Рейтинг: 0 / 0
помогите с запросом
    #39016763
vologdabobr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А check_inn_crc(s.tabn) судя по всему проверка контрольной цифры ИНН. Значит в s.tabn предположительно располагается ИНН, но зачем-то в формате CHAR.
ТС пытается запросом вытащить все данные, которые подходят под определение ИНН состоящие из 10 символов, каждый из которых является цифрой (непонятно почему не может быть 0).
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / помогите с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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