У меня есть таблица, которая содержит 4 поля ethn_1, ethn_2, ethn_3 и ethn_4.
Мне нужно использовать эти четыре поля, чтобы:
- Установить для переменной v_ethn_code этническую принадлежность, которая хранится, когда только одно из этих полей содержит значение.
- Установить переменную v_ethn_codeв значение «Неизвестно», если в нескольких столбцах содержится значение.
Пример данных: https://imgur.com/a/El5TRWB
CREATE TABLE users
( id number(4) NOT NULL,
ethn_1 varchar2(3),
ethn_2 varchar2(3),
ethn_3 varchar2(3),
ethn_4 varchar2(3),
);
INSERT INTO users (id, ethn_1, ethn_2, ethn_3, ethn_4) VALUES (1,'AS',NULL,NULL,NULL);
INSERT INTO users (id, ethn_1, ethn_2, ethn_3, ethn_4) VALUES (2,NULL,NULL,'WH',NULL);
INSERT INTO users (id, ethn_1, ethn_2, ethn_3, ethn_4) VALUES (3,NULL,'BL',NULL,NULL);
INSERT INTO users (id, ethn_1, ethn_2, ethn_3, ethn_4) VALUES (4,'AS','BL',NULL,NULL);
INSERT INTO users (id, ethn_1, ethn_2, ethn_3, ethn_4) VALUES (5,NULL,NULL,NULL,'HO');
INSERT INTO users (id, ethn_1, ethn_2, ethn_3, ethn_4) VALUES (6,NULL,NULL,'WH','HO');
INSERT INTO users (id, ethn_1, ethn_2, ethn_3, ethn_4) VALUES (7,NULL,'BL',NULL,NULL);
╔════╤════════╤════════╤════════╤════════╗
║ id │ ethn_1 │ ethn_2 │ ethn_3 │ ethn_4 ║
╠════╪════════╪════════╪════════╪════════╣
║ 1 │ AS │ │ │ ║
╟────┼────────┼────────┼────────┼────────╢
║ 2 │ │ │ WH │ ║
╟────┼────────┼────────┼────────┼────────╢
║ 3 │ │ BL │ │ ║
╟────┼────────┼────────┼────────┼────────╢
║ 4 │ AS │ BL │ │ ║
╟────┼────────┼────────┼────────┼────────╢
║ 5 │ │ │ │ HO ║
╟────┼────────┼────────┼────────┼────────╢
║ 6 │ │ │ WH │ HO ║
╟────┼────────┼────────┼────────┼────────╢
║ 7 │ │ BL │ │ ║
╚════╧════════╧════════╧════════╧════════╝
Я пытался вложить условные выражения, чтобы определить, является ли ethn_1не NULL, установите его на это, затем проверьте, не является ли ethn_2 не NULL, вернитесь и установите переменную в значение unknown и т. д. ..., но это не будет работать логически, и будет гораздо больше кода, чем я считаю эффективным.Как правильно это проверить?