重新显示数据 横轴 1 2 3 4
A 5 0 2 N 0
A 9 2 N N N
A 11 2 2 2 N
A 15 N N N N
A 19 2 0 2 N
B 2 0 0 0 1
B 3 2 N 0 N
B 6 0 N 0 0
B 7 2 N N N
B 12 N 2 1 N
B 13 0 N 2 0
B 16 2 1 1 N
B 17 N N N 2
C 4 N N 0 N
C 8 N 2 2 1
C 10 N N 2 2
C 14 N N N N
C 18 N N N N
C 20 N 0 N 1
D 1 0 0 2 0
D 2 0 0 0 0
D 3 0 0 0 0
E 1 0 0 0 0
E 2 0 0 0 0
E 3 0 0 0 0
F 30 0 0 0 1
F 31 0 0 2 0
F 33 0 2 0 0
1 2 3 4 5 6 7 8 9 10 11 …
A 1 N N N N 0 N N N 2 N 2 …
A 2 N N N N 2 N N N N N 2 …
A 3 N N N N N N N N N N 2 …
A 4 N N N N 0 N N N N N N …
B 1 N 0 2 N N 0 2 N N N N …
B 2 N 0 N N N N N N N N N …
B 3 N 0 0 N N 0 N N N N N …
B 4 N 1 N N N 0 N N N N N …
C 1 N N N N N N N N N N N …
C 2 N N N N N N N 2 N N N …
C 3 N N N 0 N N N 2 N 2 N …
C 4 N N N N N N N 1 N 2 N …
… … … … … … … … … … … … … …
A 5 0 2 N 0
A 9 2 N N N
A 11 2 2 2 N
A 15 N N N N
A 19 2 0 2 N
B 2 0 0 0 1
B 3 2 N 0 N
B 6 0 N 0 0
B 7 2 N N N
B 12 N 2 1 N
B 13 0 N 2 0
B 16 2 1 1 N
B 17 N N N 2
C 4 N N 0 N
C 8 N 2 2 1
C 10 N N 2 2
C 14 N N N N
C 18 N N N N
C 20 N 0 N 1
D 1 0 0 2 0
D 2 0 0 0 0
D 3 0 0 0 0
E 1 0 0 0 0
E 2 0 0 0 0
E 3 0 0 0 0
F 30 0 0 0 1
F 31 0 0 2 0
F 33 0 2 0 0
1 2 3 4 5 6 7 8 9 10 11 …
A 1 N N N N 0 N N N 2 N 2 …
A 2 N N N N 2 N N N N N 2 …
A 3 N N N N N N N N N N 2 …
A 4 N N N N 0 N N N N N N …
B 1 N 0 2 N N 0 2 N N N N …
B 2 N 0 N N N N N N N N N …
B 3 N 0 0 N N 0 N N N N N …
B 4 N 1 N N N 0 N N N N N …
C 1 N N N N N N N N N N N …
C 2 N N N N N N N 2 N N N …
C 3 N N N 0 N N N 2 N 2 N …
C 4 N N N N N N N 1 N 2 N …
… … … … … … … … … … … … … …
Set Nocount On
if not object_id('Test') is null
drop table Test
Go
Create table Test([name] nvarchar(1),[横轴] int,[1] nvarchar(1),[2] nvarchar(1),[3] nvarchar(1),[4] nvarchar(1))
Insert Test
select N'A',5,N'0',N'2',null,N'0' union all
select N'A',9,N'2',null,null,null union all
select N'A',11,N'2',N'2',N'2',null union all
select N'A',15,null,null,null,null union all
select N'A',19,N'2',N'0',N'2',null union all
select N'B',2,N'0',N'0',N'0',N'1' union all
select N'B',3,N'2',null,N'0',null union all
select N'B',6,N'0',null,N'0',N'0' union all
select N'B',7,N'2',null,null,null union all
select N'B',12,null,N'2',N'1',null union all
select N'B',13,N'0',null,N'2',N'0' union all
select N'B',16,N'2',N'1',N'1',null union all
select N'B',17,null,null,null,N'2' union all
select N'C',4,null,null,N'0',null union all
select N'C',8,null,N'2',N'2',N'1' union all
select N'C',10,null,null,N'2',N'2' union all
select N'C',14,null,null,null,null union all
select N'C',18,null,null,null,null union all
select N'C',20,null,N'0',null,N'1' union all
select N'D',1,N'0',N'0',N'2',N'0' union all
select N'D',2,N'0',N'0',N'0',N'0' union all
select N'D',3,N'0',N'0',N'0',N'0' union all
select N'E',1,N'0',N'0',N'0',N'0' union all
select N'E',2,N'0',N'0',N'0',N'0' union all
select N'E',3,N'0',N'0',N'0',N'0' union all
select N'F',30,N'0',N'0',N'0',N'1' union all
select N'F',31,N'0',N'0',N'2',N'0' union all
select N'F',33,N'0',N'2',N'0',N'0'
Go
Declare @In nvarchar(4000)
Select @In=Isnull(@In+',','')+Quotename([横轴]) From test Group By [横轴]
Exec (N'
;With t As
(Select * from Test a unpivot(v For col in([1],[2],[3],[4])) p)
Select *
From t As a
pivot(Max(v) For 横轴 in('+@In+')) p
Order By name
')/*
name col 1 2 3 4 5 6 ....31
----------------------------------
A 1 NULL NULL NULL NULL 0 NULL NULL NULL 2 NULL 2 NULL NULL NULL NULL NULL NULL NULL 2 NULL NULL NULL NULL
A 2 NULL NULL NULL NULL 2 NULL NULL NULL NULL NULL 2 NULL NULL NULL NULL NULL NULL NULL 0 NULL NULL NULL NULL
A 3 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 2 NULL NULL NULL NULL NULL NULL NULL 2 NULL NULL NULL NULL
A 4 NULL NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
B 1 NULL 0 2 NULL NULL 0 2 NULL NULL NULL NULL NULL 0 NULL NULL 2 NULL NULL NULL NULL NULL NULL NULL
B 2 NULL 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL 2 NULL NULL NULL 1 NULL NULL NULL NULL NULL NULL NULL
B 3 NULL 0 0 NULL NULL 0 NULL NULL NULL NULL NULL 1 2 NULL NULL 1 NULL NULL NULL NULL NULL NULL NULL
B 4 NULL 1 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL 0 NULL NULL NULL 2 NULL NULL NULL NULL NULL NULL
C 2 NULL NULL NULL NULL NULL NULL NULL 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 NULL NULL NULL
C 3 NULL NULL NULL 0 NULL NULL NULL 2 NULL 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
C 4 NULL NULL NULL NULL NULL NULL NULL 1 NULL 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 NULL NULL NULL
D 1 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
D 2 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
D 3 2 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
D 4 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 1 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 2 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 3 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 4 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
F 1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 0 0
F 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 0 2
F 3 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 2 0
F 4 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 0 0
*/
不过我发现...unpivot是MS-SQL2005以上版本的...
我用的MS-SQL2000
INSERT TB
SELECT 'A', 5, '0', '2', 'N', '0' UNION ALL
SELECT 'A', 9, '2', 'N', 'N', 'N' UNION ALL
SELECT 'A', 11, '2', '2', '2', 'N' UNION ALL
SELECT 'A', 15, 'N', 'N', 'N', 'N' UNION ALL
SELECT 'A', 19, '2', '0', '2', 'N' UNION ALL
SELECT 'B', 2, '0', '0', '0', '1' UNION ALL
SELECT 'B', 3, '2', 'N', '0', 'N' UNION ALL
SELECT 'B', 6, '0', 'N', '0', '0' UNION ALL
SELECT 'B', 7, '2', 'N', 'N', 'N' UNION ALL
SELECT 'B', 12, 'N', '2', '1', 'N' UNION ALL
SELECT 'B', 13, '0', 'N', '2', '0' UNION ALL
SELECT 'B', 16, '2', '1', '1', 'N' UNION ALL
SELECT 'B', 17, 'N', 'N', 'N', '2' UNION ALL
SELECT 'C', 4, 'N', 'N', '0', 'N' UNION ALL
SELECT 'C', 8, 'N', '2', '2', '1' UNION ALL
SELECT 'C', 10, 'N', 'N', '2', '2' UNION ALL
SELECT 'C', 14, 'N', 'N', 'N', 'N' UNION ALL
SELECT 'C', 18, 'N', 'N', 'N', 'N' UNION ALL
SELECT 'C', 20, 'N', '0', 'N', '1' UNION ALL
SELECT 'D', 1, '0', '0', '2', '0' UNION ALL
SELECT 'D', 2, '0', '0', '0', '0' UNION ALL
SELECT 'D', 3, '0', '0', '0', '0' UNION ALL
SELECT 'E', 1, '0', '0', '0', '0' UNION ALL
SELECT 'E', 2, '0', '0', '0', '0' UNION ALL
SELECT 'E', 3, '0', '0', '0', '0' UNION ALL
SELECT 'F', 30, '0', '0', '0', '1' UNION ALL
SELECT 'F', 31, '0', '0', '2', '0' UNION ALL
SELECT 'F', 33, '0', '2', '0', '0'DECLARE @S1 VARCHAR(8000),@S2 VARCHAR(8000),@S3 VARCHAR(8000),@S4 VARCHAR(8000)
SET @S1=''
SET @S2=''
SET @S3=''
SET @S4=''
SELECT @S1=@S1+','+' MAX(CASE WHEN F2='+RTRIM(F2)+' THEN F3 END) AS '''+RTRIM(F2)+''''
FROM (SELECT DISTINCT F2 FROM TB) ASELECT @S2=@S2+','+' MAX(CASE WHEN F2='+RTRIM(F2)+' THEN F3 END) AS '''+RTRIM(F2)+''''
FROM (SELECT DISTINCT F2 FROM TB) ASELECT @S3=@S3+','+' MAX(CASE WHEN F2='+RTRIM(F2)+' THEN F3 END) AS '''+RTRIM(F2)+''''
FROM (SELECT DISTINCT F2 FROM TB) ASELECT @S4=@S4+','+' MAX(CASE WHEN F2='+RTRIM(F2)+' THEN F3 END) AS '''+RTRIM(F2)+''''
FROM (SELECT DISTINCT F2 FROM TB) ASET @S1='SELECT F1,1 AS SEQ'+@S1+' FROM TB GROUP BY F1 UNION ALL '
SET @S2='SELECT F1,2 AS SEQ'+@S2+' FROM TB GROUP BY F1 UNION ALL '
SET @S3='SELECT F1,3 AS SEQ'+@S3+' FROM TB GROUP BY F1 UNION ALL '
SET @S4='SELECT F1,4 AS SEQ'+@S4+' FROM TB GROUP BY F1 ORDER BY F1,SEQ'EXEC(@S1+@S2+@S3+@S4)DROP TABLE #
DROP TABLE TB/*
F1 SEQ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 30 31 33
---- ----------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
A 1 NULL NULL NULL NULL 0 NULL NULL NULL 2 NULL 2 NULL NULL NULL N NULL NULL NULL 2 NULL NULL NULL NULL
A 2 NULL NULL NULL NULL 0 NULL NULL NULL 2 NULL 2 NULL NULL NULL N NULL NULL NULL 2 NULL NULL NULL NULL
A 3 NULL NULL NULL NULL 0 NULL NULL NULL 2 NULL 2 NULL NULL NULL N NULL NULL NULL 2 NULL NULL NULL NULL
A 4 NULL NULL NULL NULL 0 NULL NULL NULL 2 NULL 2 NULL NULL NULL N NULL NULL NULL 2 NULL NULL NULL NULL
B 1 NULL 0 2 NULL NULL 0 2 NULL NULL NULL NULL N 0 NULL NULL 2 N NULL NULL NULL NULL NULL NULL
B 2 NULL 0 2 NULL NULL 0 2 NULL NULL NULL NULL N 0 NULL NULL 2 N NULL NULL NULL NULL NULL NULL
B 3 NULL 0 2 NULL NULL 0 2 NULL NULL NULL NULL N 0 NULL NULL 2 N NULL NULL NULL NULL NULL NULL
B 4 NULL 0 2 NULL NULL 0 2 NULL NULL NULL NULL N 0 NULL NULL 2 N NULL NULL NULL NULL NULL NULL
C 1 NULL NULL NULL N NULL NULL NULL N NULL N NULL NULL NULL N NULL NULL NULL N NULL N NULL NULL NULL
C 2 NULL NULL NULL N NULL NULL NULL N NULL N NULL NULL NULL N NULL NULL NULL N NULL N NULL NULL NULL
C 3 NULL NULL NULL N NULL NULL NULL N NULL N NULL NULL NULL N NULL NULL NULL N NULL N NULL NULL NULL
C 4 NULL NULL NULL N NULL NULL NULL N NULL N NULL NULL NULL N NULL NULL NULL N NULL N NULL NULL NULL
D 1 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
D 2 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
D 3 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
D 4 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 1 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 2 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 3 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 4 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
F 1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 0 0
F 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 0 0
F 3 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 0 0
F 4 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 0 0
*/
...
--DROP TABLE #
DROP TABLE TB
INSERT TB
SELECT 'A', 5, '0', '2', 'N', '0' UNION ALL
SELECT 'A', 9, '2', 'N', 'N', 'N' UNION ALL
SELECT 'A', 11, '2', '2', '2', 'N' UNION ALL
SELECT 'A', 15, 'N', 'N', 'N', 'N' UNION ALL
SELECT 'A', 19, '2', '0', '2', 'N' UNION ALL
SELECT 'B', 2, '0', '0', '0', '1' UNION ALL
SELECT 'B', 3, '2', 'N', '0', 'N' UNION ALL
SELECT 'B', 6, '0', 'N', '0', '0' UNION ALL
SELECT 'B', 7, '2', 'N', 'N', 'N' UNION ALL
SELECT 'B', 12, 'N', '2', '1', 'N' UNION ALL
SELECT 'B', 13, '0', 'N', '2', '0' UNION ALL
SELECT 'B', 16, '2', '1', '1', 'N' UNION ALL
SELECT 'B', 17, 'N', 'N', 'N', '2' UNION ALL
SELECT 'C', 4, 'N', 'N', '0', 'N' UNION ALL
SELECT 'C', 8, 'N', '2', '2', '1' UNION ALL
SELECT 'C', 10, 'N', 'N', '2', '2' UNION ALL
SELECT 'C', 14, 'N', 'N', 'N', 'N' UNION ALL
SELECT 'C', 18, 'N', 'N', 'N', 'N' UNION ALL
SELECT 'C', 20, 'N', '0', 'N', '1' UNION ALL
SELECT 'D', 1, '0', '0', '2', '0' UNION ALL
SELECT 'D', 2, '0', '0', '0', '0' UNION ALL
SELECT 'D', 3, '0', '0', '0', '0' UNION ALL
SELECT 'E', 1, '0', '0', '0', '0' UNION ALL
SELECT 'E', 2, '0', '0', '0', '0' UNION ALL
SELECT 'E', 3, '0', '0', '0', '0' UNION ALL
SELECT 'F', 30, '0', '0', '0', '1' UNION ALL
SELECT 'F', 31, '0', '0', '2', '0' UNION ALL
SELECT 'F', 33, '0', '2', '0', '0'DECLARE @S1 VARCHAR(8000),@S2 VARCHAR(8000),@S3 VARCHAR(8000),@S4 VARCHAR(8000)
SET @S1=''
SET @S2=''
SET @S3=''
SET @S4=''
SELECT @S1=@S1+','+' MAX(CASE WHEN F2='+RTRIM(F2)+' THEN F3 END) AS '''+RTRIM(F2)+''''
FROM (SELECT DISTINCT F2 FROM TB) ASELECT @S2=@S2+','+' MAX(CASE WHEN F2='+RTRIM(F2)+' THEN F4 END) AS '''+RTRIM(F2)+''''
FROM (SELECT DISTINCT F2 FROM TB) ASELECT @S3=@S3+','+' MAX(CASE WHEN F2='+RTRIM(F2)+' THEN F5 END) AS '''+RTRIM(F2)+''''
FROM (SELECT DISTINCT F2 FROM TB) ASELECT @S4=@S4+','+' MAX(CASE WHEN F2='+RTRIM(F2)+' THEN F6 END) AS '''+RTRIM(F2)+''''
FROM (SELECT DISTINCT F2 FROM TB) ASET @S1='SELECT F1,1 AS SEQ'+@S1+' FROM TB GROUP BY F1 UNION ALL '
SET @S2='SELECT F1,2 AS SEQ'+@S2+' FROM TB GROUP BY F1 UNION ALL '
SET @S3='SELECT F1,3 AS SEQ'+@S3+' FROM TB GROUP BY F1 UNION ALL '
SET @S4='SELECT F1,4 AS SEQ'+@S4+' FROM TB GROUP BY F1 ORDER BY F1,SEQ'EXEC(@S1+@S2+@S3+@S4)DROP TABLE TB/*
F1 SEQ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 30 31 33
---- ----------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
A 1 NULL NULL NULL NULL 0 NULL NULL NULL 2 NULL 2 NULL NULL NULL N NULL NULL NULL 2 NULL NULL NULL NULL
A 2 NULL NULL NULL NULL 2 NULL NULL NULL N NULL 2 NULL NULL NULL N NULL NULL NULL 0 NULL NULL NULL NULL
A 3 NULL NULL NULL NULL N NULL NULL NULL N NULL 2 NULL NULL NULL N NULL NULL NULL 2 NULL NULL NULL NULL
A 4 NULL NULL NULL NULL 0 NULL NULL NULL N NULL N NULL NULL NULL N NULL NULL NULL N NULL NULL NULL NULL
B 1 NULL 0 2 NULL NULL 0 2 NULL NULL NULL NULL N 0 NULL NULL 2 N NULL NULL NULL NULL NULL NULL
B 2 NULL 0 N NULL NULL N N NULL NULL NULL NULL 2 N NULL NULL 1 N NULL NULL NULL NULL NULL NULL
B 3 NULL 0 0 NULL NULL 0 N NULL NULL NULL NULL 1 2 NULL NULL 1 N NULL NULL NULL NULL NULL NULL
B 4 NULL 1 N NULL NULL 0 N NULL NULL NULL NULL N 0 NULL NULL N 2 NULL NULL NULL NULL NULL NULL
C 1 NULL NULL NULL N NULL NULL NULL N NULL N NULL NULL NULL N NULL NULL NULL N NULL N NULL NULL NULL
C 2 NULL NULL NULL N NULL NULL NULL 2 NULL N NULL NULL NULL N NULL NULL NULL N NULL 0 NULL NULL NULL
C 3 NULL NULL NULL 0 NULL NULL NULL 2 NULL 2 NULL NULL NULL N NULL NULL NULL N NULL N NULL NULL NULL
C 4 NULL NULL NULL N NULL NULL NULL 1 NULL 2 NULL NULL NULL N NULL NULL NULL N NULL 1 NULL NULL NULL
D 1 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
D 2 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
D 3 2 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
D 4 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 1 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 2 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 3 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
E 4 0 0 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
F 1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 0 0
F 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 0 2
F 3 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 2 0
F 4 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 0 0
*/