Sql server SQL Server:基于其他列数据将数据从一列分离为两列
我有SQL Server 2012,希望创建一个执行以下操作的视图: 我的桌子有:Sql server SQL Server:基于其他列数据将数据从一列分离为两列,sql-server,Sql Server,我有SQL Server 2012,希望创建一个执行以下操作的视图: 我的桌子有: MovType | Qty In | 200 Out | 10 现在我想创建一个视图,基本上遍历整个表,这取决于MovType是In还是Out分配给一个特殊的动态列 所以基本上我需要: InQty | OutQty 200 | 0 0 | 10 我知道这可以用CASE来完成,但不确定代码。第二,速度是一个重要的因素,所以有没有什么特别的方法来尽可能减少开销呢 提前感谢大家 是的,
MovType | Qty
In | 200
Out | 10
现在我想创建一个视图,基本上遍历整个表,这取决于MovType
是In
还是Out
分配给一个特殊的动态列
所以基本上我需要:
InQty | OutQty
200 | 0
0 | 10
我知道这可以用CASE
来完成,但不确定代码。第二,速度是一个重要的因素,所以有没有什么特别的方法来尽可能减少开销呢
提前感谢大家 是的,您可以使用
案例
,它应该是有效的。case语句不需要像JOIN一样从磁盘读取,它是一个非常简单的命令,不太可能导致性能问题
SELECT CASE WHEN MovType='In' THEN Qty Else 0 End AS InQty,
CASE WHEN MovType='Out' THEN Qty Else 0 End AS OutQty
FROM dbo.Table1