#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
. Удалил его