powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Сравнить 2 строки
8 сообщений из 8, страница 1 из 1
Сравнить 2 строки
    #33301825
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу вот такой Select

Select field1
from table1
where field2='1234567890'

Нужно сравнить 6 первых цифр в обеих полях. Как это сделать?
Использую SubStr(field2,1,6) = Substr('1234567890',1,6)
и все равно
0 raws affected
Хотя такая запись есть и не одна...

ЗЫ Простите за глупый вопрос но мануала под рукой нет.
...
Рейтинг: 0 / 0
Сравнить 2 строки
    #33301856
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
структуру table1 покажите - интересует как объявлено field2. Если поле символьное, то
Код: plaintext
select field1 from table1 where field2[ 1 , 6 ] = 'ABCDEF'
должно работать.
...
Рейтинг: 0 / 0
Сравнить 2 строки
    #33301876
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:-) если б я еще знал как посмотреть структуру :-) desc table1 тут не катит...
Поле точно символьное в нем есть буквы.

А твоя запись с [1,6] вообще дает ошибку SQL.
Error: sqlerrm(field2) (State:22003, Native Code: FFFFFECE)
...
Рейтинг: 0 / 0
Сравнить 2 строки
    #33301894
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Говорит Field2 - Char(19) а константа таки объявлена в кавычках...
...
Рейтинг: 0 / 0
Сравнить 2 строки
    #33301950
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create temp table table1
(
	field1 char( 19 ),
	field2 char( 19 )
) with no log ;

insert into table1 values('record1','ABCDEFGHIJKLM') ;

select field1 from table1 where field2[ 1 , 6 ] = 'ABCDEF' ;
Ещё как работает. IDS 7.31. Да и позже должно работать. Заполни анкету - версия сервера, что за клиент, осы клиента, сервера...
...
Рейтинг: 0 / 0
Сравнить 2 строки
    #33302034
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем все оказалось просто. Вместо field2 ставил field1 совсем заработался...

А еще несколько глупых вопросов

1) Как сделать цикл вида repeat until (условие) или хотя бы while (условие) do
2) как получить количество строк в select-е после того как он отработал

Спасибо за участие.

informix ODBC 3.34 остальное не знаю.
...
Рейтинг: 0 / 0
Сравнить 2 строки
    #33302083
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Полная документация доступна на сервере IBM совершенно бесплатно.
2. Количество записей (dbinfo('sqlca.sqlerrd2')):
Iformix SQL guideThe 'sqlca.sqlerrd2' option returns a single integer that provides the number
of rows that SELECT, INSERT, DELETE, UPDATE, and EXECUTE PROCEDURE
statements processed. To ensure valid results, use this option after SELECT
and EXECUTE PROCEDURE statements have completed executing. In
addition, to ensure valid results when you use this option within cursors,
make sure that all rows are fetched before the cursors are closed.
The following example shows a stored procedure that uses the
'sqlca.sqlerrd2' option to determine the number of rows that are deleted from
a table:
CREATE PROCEDURE del_rows (pnumb int)
RETURNING int;
DEFINE nrows int;
DELETE FROM fst_tab WHERE part_num=pnumb;
LET nrows = DBINFO('sqlca.sqlerrd2');
RETURN nrows;
END PROCEDURE
3. While (ещё есть for и foreach):
Informix SQL guide Example of WHILE Loops in a Stored Procedure
The following example illustrates the use of WHILE loops in a stored
procedure. The first WHILE loop executes a DELETE statement. The second
WHILE loop executes an INSERT statement and increments the value of a
procedure variable.
CREATE PROCEDURE simp_while()
DEFINE i INT;
WHILE EXISTS (SELECT fname FROM customer
WHERE customer_num > 400)
DELETE FROM customer WHERE id_2 = 2;
END WHILE;
LET i = 1;
WHILE i < 10
INSERT INTO tab_2 VALUES (i);
LET i = i + 1;
END WHILE;
END PROCEDURE
...
Рейтинг: 0 / 0
Сравнить 2 строки
    #33302110
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое :-) буду копать...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Сравнить 2 строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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