Sql server 根据列中的值将SQL中的一列拆分为多个列
我需要使用TSQL将一个列分隔(拆分)为多个列。 我正在使用Microsoft SQL Server Management Studio 例如: 让我们称之为一堆股票的投资组合。某些日期可能重叠(在某一日期持有1只以上的股票)。 我有多个投资组合,每个投资组合中有不同数量的股票,所以我需要Sql server 根据列中的值将SQL中的一列拆分为多个列,sql-server,tsql,split,multiple-columns,Sql Server,Tsql,Split,Multiple Columns,我需要使用TSQL将一个列分隔(拆分)为多个列。 我正在使用Microsoft SQL Server Management Studio 例如: 让我们称之为一堆股票的投资组合。某些日期可能重叠(在某一日期持有1只以上的股票)。 我有多个投资组合,每个投资组合中有不同数量的股票,所以我需要 for stock in stocks: select stock 每只股票(A、B或C)都会进入自己的栏目——如果可以动态更改名称,那也很好。所以我会有“股票A”,“退货A”,“股票B”,“退货
for stock in stocks:
select stock
每只股票(A、B或C)都会进入自己的栏目——如果可以动态更改名称,那也很好。所以我会有“股票A”,“退货A”,“股票B”,“退货B”,“股票C”,“退货C”
然后我将做一个简单的算术运算,比如列“sum”
增加:
股票的名称和数量可能因投资组合而异,因此应该是动态的
谢谢。您可以使用条件聚合:
select date,
'A', max(case when stock = 'A' then return end) as return_A,
'B', max(case when stock = 'B' then return end) as return_B,
'C', max(case when stock = 'C' then return end) as return_C
from t
group by date;
非常感谢。如果我事先不知道名称“A”、“B”、“C”,因此无法将其硬编码到查询中,该怎么办?@user\u unknown。那么你会有一个不同的问题。你的问题明确指出:“每只股票(A、B或C)都会进入自己的专栏”。抱歉,我确实提到了“我有多个投资组合,每个投资组合中的股票数量不同,所以我需要类似的东西”。我想这将有助于更好地理解我需要什么。如果你知道怎么做,我会很感激你的帮助。此外,如果需要,我很乐意修改/编辑我的初始帖子。谢谢。请阅读一些关于改进您的问题的提示。一旦你更新了你的问题,我们将知道哪些像素标识了公文包(如果有的话)。