Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 根据列中的值将SQL中的一列拆分为多个列_Sql Server_Tsql_Split_Multiple Columns - Fatal编程技术网

Sql server 根据列中的值将SQL中的一列拆分为多个列

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”,“退货

我需要使用TSQL将一个列分隔(拆分)为多个列。 我正在使用Microsoft SQL Server Management Studio

例如:

让我们称之为一堆股票的投资组合。某些日期可能重叠(在某一日期持有1只以上的股票)。 我有多个投资组合,每个投资组合中有不同数量的股票,所以我需要

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)都会进入自己的专栏”。抱歉,我确实提到了“我有多个投资组合,每个投资组合中的股票数量不同,所以我需要类似的东西”。我想这将有助于更好地理解我需要什么。如果你知道怎么做,我会很感激你的帮助。此外,如果需要,我很乐意修改/编辑我的初始帖子。谢谢。请阅读一些关于改进您的问题的提示。一旦你更新了你的问题,我们将知道哪些像素标识了公文包(如果有的话)。