繁体   English   中英

如何基于其他列值将单列值拆分为多列

[英]how to split single column values into multiple columns based on other column values

我正在尝试根据另一个列值将单列值拆分为多个列,我可以获取它,但是我无法删除获得的其他空值

create table tbl1
(id int, strtype varchar(50), strvalue varchar(20));

insert into tbl1 values
(1, 'name', 'a'),(1, 'value', 'a1'),(1, 'name', 'b'),(1, 'value', 'b1');

所需的输出

NAME    VALUE
a       a1
b       b1

我试过的SQL

select 
(case when strtype='name' then strvalue end) as name,
(case when strtype='value' then strvalue end) as value
from tbl1

检查以下脚本,希望对您有所帮助:

Select t1.strValue , t2.strvalue from tbl1 t1 inner join tbl1 t2 on t1.id = t2.id 
where t1.strtype = 'name' and t2.strtype = 'value' and t1.strvalue = LEFT(t2.strvalue ,1) 

如果没错,这应该对您有帮助。

SELECT *
FROM   (SELECT *
        FROM   tbl1) a
       PIVOT (Max(strvalue)
             FOR strtype IN (name,value)) pv
UNION
SELECT *
FROM   (SELECT *
        FROM   tbl1) a
       PIVOT (Min(strvalue)
             FOR strtype IN (name,value)) pv 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM