连接单个列中一行中的多个列

时间:2013-07-02 11:12:39

标签: sql tsql sql-server-2000


背景
我正在进行Sql2000查询,我需要获取交叉表查询报告。我尝试了几种组合,并使用RollUP获得了结果。

问题
真正的问题是我必须在只有一列的表中插入记录。
例如:
我的实际记录(在RollUP之后)有3列,如下:

ID |五月|六月|共

CS | 21 | 54 | 75
AB | 12 | 15 | 27

(这些结果以网格格式出现)

我需要在只有一列的表中插入问题。格式为

数据

ID五月六月总
21个54 75
12 15 27

请注意,列标题也会插入第二个表中。
这有道理吗? 我知道这可以通过回复服务或水晶报告轻松完成,但我有限制,不适合他们。

提前致谢。

1 个答案:

答案 0 :(得分:0)

听起来你想要做的就是将三个(或四个?)列的字符串连接成一个?

我将为您节省通常伴随此类问题的不良练习讲座:

根据您的示例,我假设您需要固定长度字段,而不是分隔字段。如果要分隔,请使用varchar而不是char,并在其间放置分隔字符串。最后一列被转换为varchar,因为您不需要额外的填充。

SELECT CAST([ID] AS char(10)) 
   + CAST(May AS char(10)) 
   + CAST(June AS char(10)) 
   + CAST([Total] AS varchar(10)) AS column1
FROM ...

这会导致

CS        21        54        75
AB        12        15        27