Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / replace, translate, || или что нибудь еще / 12 сообщений из 12, страница 1 из 1
10.01.2003, 09:11
    #32088581
replace, translate, || или что нибудь еще
HI ALL!
Никак не могу сообразить (мозги замерзли!) как в select (обязательно select, никаких функций!) обработать поле что бы получить следующее:
1. если поле is null --> null
2. если поле равно <значение> --> abcd<значение>
replace, translate, || не помогают.
HELP pls!
...
Рейтинг: 0 / 0
10.01.2003, 09:15
    #32088586
Allexx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
replace, translate, || или что нибудь еще
nvl?
...
Рейтинг: 0 / 0
10.01.2003, 09:16
    #32088588
Allexx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
replace, translate, || или что нибудь еще
decode(a,null,'abcd'||a)?
...
Рейтинг: 0 / 0
10.01.2003, 09:18
    #32088590
user1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
replace, translate, || или что нибудь еще
Хотя я не совсем понял что нужно вместо пустого значения, но советую посмотреть функцию NVL (она используеться в простом оракловом select'е)
...
Рейтинг: 0 / 0
10.01.2003, 09:32
    #32088599
Animal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
replace, translate, || или что нибудь еще
Может тогда лучше NVL2 ?


IIf expr1 is not null, NVL2 returns expr2. If expr1 is null, NVL2 returns expr3. The argument expr1 can have any datatype. The arguments expr2 and expr3 can have any datatypes except LONG.

If the datatypes of expr2 and expr3 are different, Oracle converts expr3 to the datatype of expr2 before comparing them unless expr3 is a null constant. In that case, a datatype conversion is not necessary.

The datatype of the return value is always the same as the datatype of expr2, unless expr2 is character data, in which case the return value's datatype is VARCHAR2.

Syntax

NVL2 (expr1, expr2, expr3)


SSELECT ename, NVL2(TO_CHAR(COMM), 'SAL & COMM', 'SAL') income
FROM emp WHERE deptno = 30;

ENAME INCOME
---------- ----------
ALLEN SAL & COMM
WARD SAL & COMM
MARTIN SAL & COMM
BLAKE SAL
TURNER SAL & COMM
JAMES SAL
...
Рейтинг: 0 / 0
10.01.2003, 09:41
    #32088603
replace, translate, || или что нибудь еще
Огромное всем спасибо!
Подошла NVL2.
...
Рейтинг: 0 / 0
10.01.2003, 09:53
    #32088612
replace, translate, || или что нибудь еще
nvl2 в простом select работает, но когда я его помещаю в хранимую процедуру (в составе того же select) - пишет
PLS-00201 идентификатор NVL2 должен быть обьявлен!
версия - Oracle8i Enterprise Edition Release 8.1.5.0.0, 64-bit
...
Рейтинг: 0 / 0
10.01.2003, 10:46
    #32088654
Allexx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
replace, translate, || или что нибудь еще
в самом деле нету:)
пиши тогда decode(field1,null,null,abcd||field1)
...
Рейтинг: 0 / 0
10.01.2003, 11:10
    #32088669
Виктор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
replace, translate, || или что нибудь еще
Ну у SQL и PL/SQL разные движки, поэтому в SQL уже есть эта новая функция NVL2, а в PL/SQL нету ... :-(
...
Рейтинг: 0 / 0
10.01.2003, 11:13
    #32088672
Allexx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
replace, translate, || или что нибудь еще
ничего ж себе новая. в восьмёрке уже есть/была
...
Рейтинг: 0 / 0
10.01.2003, 12:02
    #32088708
Виктор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
replace, translate, || или что нибудь еще
Скажем так - относительно новая :-)
Про такой прикол с NVL2 где-то писалу уже, не могу вспомнить где.
...
Рейтинг: 0 / 0
10.01.2003, 12:08
    #32088716
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
replace, translate, || или что нибудь еще
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / replace, translate, || или что нибудь еще / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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