Добавить растровое изображение для NULL в Oracle SQL - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть следующая таблица:

Table1

USER_ID     NAME    AGE     GENDER  ZIP_CODE
1           John    33      M       01086       
2           NULL    22      M       01247
3           Brown   NULL    F       01581

Я хочу добавить растровое изображение в виде столбца в конце.

USER_ID     NAME    AGE     GENDER  ZIP_CODE   NULL_COLUMN
1           John    33      M       01086      00000
2           NULL    22      M       01247      01000
3           Brown   NULL    F       01581      00100

Логика:

Если значение отличается от NULL, присвойте 0

Если значение = NULL, присвойте 1

Также, если я сделаюстолбец NULL, затем необходимо обновить NULL_COLUMN следующим образом:

Update table1 set name = NULL;

Table1

USER_ID     NAME    AGE     GENDER  ZIP_CODE   NULL_COLUMN
1           NULL    33      M       01086      01000
2           NULL    22      M       01247      01000
3           NULL    NULL    F       01581      01100

Есть ли способ в Oracle SQL длясоздать NULL_COLUMN, используя условия, и обновить его, когда значения станут NULL?

Ответы [ 2 ]

3 голосов
/ 22 апреля 2019

Вы можете использовать сгенерированный столбец:

alter table table1
    add null_map generated always as (nvl2(userJ_id, '1', '0') || nvl2(name, '1', '0') || nvl2(age, '1', '') || nvl2(gender, '1', '') || nvl2(zip_code, '1', '0'));
0 голосов
/ 22 апреля 2019

Вы можете использовать concat для NVL2

select USER_ID 
,NAME
,AGE
,GENDE
,ZIP_CODE
, '0' || NVL2( NAME, '1', '0' ) || 
  NVL2( AGE, '1', '0' ) ||
  NVL2( GENDER, '1', '0' ) || 
  NVL2( ZIP_CODE, '1', '0' ) NULL_COLUMN

из my_table

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...