我正在尝试使用SQL和LINQ基于表来实现行列表。 可用表格如下:
ID SName SValue LName LValue FName FValue
1 TextS 1.1 null null null null
2 null null TextL 2.2 null null
3 null null null null TextF 3.3
我正在尝试编写一个可以生成如下列表的查询:
listColumn1 listColumn2
TextS 1.1
TextL 2.2
TextF 3.3
请帮助您提供专业建议。 谢谢。
答案 0 :(得分:1)
您没有指定您正在使用的RDBMS,但如果您使用的是SQL Server 2008+,并且希望在SQL中执行此操作,然后使用结果,您可以UNPIVOT
数据:
SELECT x.listColumn1,
x.listColumn2
FROM YourTable t
CROSS APPLY
(
VALUES
(t.SName, t.SValue),
(t.LName, t.LValue),
(t.FName, t.FValue)
) x (listColumn1, listColumn2)
where x.listColumn1 is not null
and x.listColumn2 is not null
结果:
| LISTCOLUMN1 | LISTCOLUMN2 |
-----------------------------
| TextS | 1.1 |
| TextL | 2.2 |
| TextF | 3.3 |