Как выполнить SQL-запрос к столбцу, группе-особому, которому должно принадлежать значение (‘ve02’, ‘ve14;,’ve22’) group2-общему, имеющему остальные значения

#sql

#sql

Вопрос:

SQL-запрос для двух групп в одном столбце, группа 1 называется специальной, которой должны принадлежать значения типа (‘ve02’, ‘ve14;,’ve22’), группа 2 называется общей, которая имеет остальные значения.

 column 1
ve01
ve02
ve10
ve10
ve22

ANS:   Special | Common
        've02' | 've01'
        've22' |'ve10'
  

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

1. Как вы сопоставляете специальные и общие значения? Например: почему ve02 находится в той же строке результатов, что и ve01?

Ответ №1:

Ваше требование кажется довольно искусственным, но вот запрос, который будет выполнять:

 with
s as (
  select 've02' as v 
  union all select 've14'
  union all select 've2'  
),
l as (
  select s.v
  from t
  join s on t.col1 = s.v
),
ln as (
  select v, row_number() over(order by v) as n from l
),
r as (
  select s.v
  from t
  left join s on t.col1 = s.v
  where s.v is null
),
rn as (
  select v, row_number() over(order by v) as n from r
)
select lx.v as special, rx.v as common
from lx
full outer join rx on ln.n = rn.n