Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Запрос в Oracle 8i / 4 сообщений из 4, страница 1 из 1
26.02.2007, 19:05
    #34355963
brzl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Oracle 8i
Здравствуйте!
Проблемка вышла такая:
в Таблице cards есть название товара: Пиво Сокол 0,5 л. ж/б

Как средствами SQL выделить 0,5 и преобразовать в числовое значение?
Проблема в том, что название может быть совершенно разное, например:
Вино Кадарка ПолуСладкое 0,75 л. ст/б (с пробелом) или
Вино Мерло ПолуСладкое 0,75л. ст/б(без пробела)
и длина числа разная пиво 0,5 а вино 0,75

т.е. контролировать получится только признак л.

Может ктонибудь поможет с запросом?

таблица простейшая
article - Number[5]
name - varchar[200]
...
Рейтинг: 0 / 0
27.02.2007, 09:57
    #34356636
Запрос в Oracle 8i
brzlЗдравствуйте!
Проблемка вышла такая:
в Таблице cards есть название товара: Пиво Сокол 0,5 л. ж/б

Как средствами SQL выделить 0,5 и преобразовать в числовое значение?
Проблема в том, что название может быть совершенно разное, например:
Вино Кадарка ПолуСладкое 0,75 л. ст/б (с пробелом) или
Вино Мерло ПолуСладкое 0,75л. ст/б(без пробела)
и длина числа разная пиво 0,5 а вино 0,75

т.е. контролировать получится только признак л.

Может ктонибудь поможет с запросом?

таблица простейшая
article - Number[5]
name - varchar[200]

Чтение хелпа Вам поможет.
Если хотите сделать все в одном запросе, то тогда так:
Код: plaintext
1.
select to_number(substr(name,instr(t.name,',')- 1 , instr(substr(t.name,instr(t.name,',')),'л'))) from YourTable t;
...
Рейтинг: 0 / 0
27.02.2007, 10:34
    #34356730
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Oracle 8i
2 СтаниславС
А если число без запятой, например, 1 литр? :)

2 Автор
В подобных случаях ошибка в проектировании базы. Название хранят полностью, если оно используется как единая строка. В противном случае его разбивают на отдельные части. В данном случае, например, я бы категорию (вино, пиво) хранил отдельно, фасовку (0.5, 0.75) - отдельно, упаковку (ж/б, ст/б) - отдельно.
...
Рейтинг: 0 / 0
27.02.2007, 12:48
    #34357300
Запрос в Oracle 8i
tru552 СтаниславС
А если число без запятой, например, 1 литр? :)

"А про это - речи не было..." (с)
В крайнем случае могут написать 1,0 л
Хотя это - уже проблема автора вопроса...
Один из вариантов решения показан...
Я бы, честно говоря, оформил бы это в функцию, которую применял бы при последовательном сканировании (fetch) таблицы / выборки...
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Запрос в Oracle 8i / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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