BETWEEN с текстовыми границами диапазона

Здравствуйте.
Имеется две таблицы
[code]
CREATE CURSOR M001(icd10 C(7))
FOR i=0 TO 9
INSERT INTO m001 (icd10) VALUES ('B46.'+ALLTRIM(STR(i)))
INSERT INTO m001 (icd10) VALUES ('B47.'+ALLTRIM(STR(i)))
INSERT INTO m001 (icd10) VALUES ('B48.'+ALLTRIM(STR(i)))
NEXT
[/code]
и вторая таблица
[code]
CREATE CURSOR test (grds C(140))
INSERT INTO test (grds) values('B46.0-B46.9')
[/code]
Нужно выбрать из m001 записи, соответствующие диапазону из таблицы test
Делаю:
[code]
SELECT test
GO 1
klp=ALLTRIM(test.grds)
CLEAR
?klp
ss1=klp
ds1=SUBSTR(ss1,1,AT('-',ss1,1)-1)
ss1=SUBSTR(ss1,AT('-',ss1,1)+1)
ds2=ALLTRIM(ss1)
?ds1
?ds2
SELECT * FROM m001 WHERE BETWEEN(RTRIM(icd10), ds1, ds2)
[/code]
Не срабатывает. Отбирает записи, и соответствующие, и не соответствующие указанному диапазону.
Вто же время при явном задании нижней и верхней границ запрос срабатывает правильно.
[code]
ds1='B46.0'
ds2='B46.9'
?ds1
?ds2
SELECT * FROM m001 WHERE BETWEEN(RTRIM(icd10), ds1, ds2)
[/code]
Что я пропускаю?

Автор публикации

Пользователи не найдены
0
Оставить комментарий
Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
Генерация пароля