Попытка добавить столбец идентификатора данных, который сопоставляется по идентификатору

#sql

Вопрос:

Я использую приведенный ниже запрос для извлечения группы кодов по идентификатору родителя и просто хочу добавить столбец, идентифицирующий каждую группу, к которой принадлежит каждая, чтобы я мог легко использовать его для вывода данных…

 select
s.DATE, p.NBR, p.parent_id 
from table_a, batch_table p
WHERE p.parent_id in
--GROUP1
('1234'
,'9876'
  --GROUP2
,'2345'
,'4567'

--GROUP3
,'3000'
,'7896'
and p._nbr=s._nbr
 

В настоящее время выглядит так

 S.date     p,nbr        p.parent ID
20210518    92          1234
20210518    92          9876
20210518    92          3000
20210518    92          2345    
 

Хотелось бы, чтобы это

 S.date     p,nbr        p.parent ID  **PARENTGROUP**
20210518    92          1234            **GROUP1**
20210518    92          9876            **GROUP1**
20210518    92          3000            **GROUP3**
20210518    92          2345            **GROUP2**  
 

Комментарии:

1. В этом нет никакого смысла. Почему вы используете декартово произведение?

Ответ №1:

Вы можете использовать case statement :

 select s.DATE, p.NBR, p.parent_id  
, case when parent_id in ('1234','9876') then 'Group 1'
       when parent_id in ('2345','4567') then 'Group 2'
       when parent_id in ('3000','7896') then 'Group 3'
 end as PARENTGROUP
from table_a s
join batch_table p on p._nbr=s._nbr
WHERE p.parent_id in ('1234','9876','2345','4567','3000','7896') 
 

также всегда используйте явное соединение