例如我有一张桌子:
num | value | info
1 | a | test2
2 | a | test1
1 | b | specialinfo
3 | a | test3
我有一个查询
select *
from t
where value='a'
结果
1 a test2
2 a test1
3 a test3
但我想将info
添加为值b
,而不是新行,而是作为附加列,因此它将如下所示:
1 a test2 specialinfo
2 a test1 null
3 a test3 null
因此值specialinfo
作为附加列而不是附加行。
对于这种情况,select * from t where value IN ('a','b')
无效
可以这样做吗?
答案 0 :(得分:1)
为了在单独的列中获取详细信息,一种方法是多次连接表以获得结果:
select t1.num, t1.value, t1.info, t2.info as t2_info
from yt t1
left join yt t2
on t1.num = t2.num
and t1.value <> t2.value
where t1.value = 'a';