SQL Присоединяется к другому элементу из одной таблицы

#sql

#sql

Вопрос:

У меня есть таблица Tablename = table01

 ID    Item    value
4      a       10
5      b       12
5      c       15
  

и мой sql

 select value as b from table01 where ID = 5 and Item = b
select value as c from table01 where ID = 5 and Item = c
  

Как я могу объединить эти два sql?

это мой воображаемый результат

 b     c
12    15
  

Ответ №1:

Вот один из методов:

 select t1.id, t1.value as b, t2.value as c
from table1 t1 join
     table1 t2
     on t1.id = t2.id and t1.item = 'b' and t2.item = 'c';
  

Ответ №2:

 SELECT MAX( CASE WHEN Item = 'b' THEN value END ) AS b,
       MAX( CASE WHEN Item = 'c' THEN value END ) AS c
  FROM table01;
  

Ответ №3:

Вот один из способов использования Conditional Aggregate

 select max(case when Item = 'b' then value end),
       max(case when Item = 'c' then value end)
from yourtable
Where ID = 5 
  and Item in ( 'b' , 'c')
  

Примечание: при этом учитывается, что ID ITEM комбинация amp; не дублируется. Если он дублируется, у вас будет максимум value дубликатов

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

1. О, спасибо. Мой SQL выбирает max (случай, когда Item = ‘b’ и ID = 5, затем конец значения), max (случай, когда Item = ‘c’ и ID = 5, затем конец значения), из table01 все в порядке?

2. @edwardlim — Перед предложением была лишняя запятая From . Удалил его