powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / replace, translate, || или что нибудь еще
12 сообщений из 12, страница 1 из 1
replace, translate, || или что нибудь еще
    #32088581
HI ALL!
Никак не могу сообразить (мозги замерзли!) как в select (обязательно select, никаких функций!) обработать поле что бы получить следующее:
1. если поле is null --> null
2. если поле равно <значение> --> abcd<значение>
replace, translate, || не помогают.
HELP pls!
...
Рейтинг: 0 / 0
replace, translate, || или что нибудь еще
    #32088586
Allexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nvl?
...
Рейтинг: 0 / 0
replace, translate, || или что нибудь еще
    #32088588
Allexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
decode(a,null,'abcd'||a)?
...
Рейтинг: 0 / 0
replace, translate, || или что нибудь еще
    #32088590
user1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя я не совсем понял что нужно вместо пустого значения, но советую посмотреть функцию NVL (она используеться в простом оракловом select'е)
...
Рейтинг: 0 / 0
replace, translate, || или что нибудь еще
    #32088599
Animal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может тогда лучше 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
replace, translate, || или что нибудь еще
    #32088603
Огромное всем спасибо!
Подошла NVL2.
...
Рейтинг: 0 / 0
replace, translate, || или что нибудь еще
    #32088612
nvl2 в простом select работает, но когда я его помещаю в хранимую процедуру (в составе того же select) - пишет
PLS-00201 идентификатор NVL2 должен быть обьявлен!
версия - Oracle8i Enterprise Edition Release 8.1.5.0.0, 64-bit
...
Рейтинг: 0 / 0
replace, translate, || или что нибудь еще
    #32088654
Allexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в самом деле нету:)
пиши тогда decode(field1,null,null,abcd||field1)
...
Рейтинг: 0 / 0
replace, translate, || или что нибудь еще
    #32088669
Виктор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну у SQL и PL/SQL разные движки, поэтому в SQL уже есть эта новая функция NVL2, а в PL/SQL нету ... :-(
...
Рейтинг: 0 / 0
replace, translate, || или что нибудь еще
    #32088672
Allexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ничего ж себе новая. в восьмёрке уже есть/была
...
Рейтинг: 0 / 0
replace, translate, || или что нибудь еще
    #32088708
Виктор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажем так - относительно новая :-)
Про такой прикол с NVL2 где-то писалу уже, не могу вспомнить где.
...
Рейтинг: 0 / 0
replace, translate, || или что нибудь еще
    #32088716
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / replace, translate, || или что нибудь еще
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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