Sql server 将每一行与另一行连接起来,以在新列中形成一个行堆栈
表中有一列,数值如下所示Sql server 将每一行与另一行连接起来,以在新列中形成一个行堆栈,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,表中有一列,数值如下所示 Table ------------ Ind Pak SL Output ------------ Ind VS Pak Ind VS SL SL VS Pak 输出应为上述单个列中的每行字符串。您可以使用CTE获得所需的结果: DECLARE @Data TABLE (Team VARCHAR(100)) INSERT @Data VALUES ('Ind'), ('Pak'), ('SL') ;WITH CTE AS ( SELECT
Table
------------
Ind
Pak
SL
Output
------------
Ind VS Pak
Ind VS SL
SL VS Pak
输出应为上述单个列中的每行字符串。您可以使用CTE获得所需的结果:
DECLARE @Data TABLE (Team VARCHAR(100))
INSERT @Data VALUES ('Ind'), ('Pak'), ('SL')
;WITH CTE AS (
SELECT
Team,
ROW_NUMBER() OVER (ORDER BY Team) AS RowNum
FROM @Data
)
SELECT
R1.Team + ' VS ' + R2.Team AS [Output]
FROM CTE R1
INNER JOIN CTE R2
ON R1.RowNum < R2.RowNum
您不一定需要CTE,但我宁愿避免出于习惯而加入VARCHAR值
SELECT
R1.Team + ' VS ' + R2.Team AS [Output]
FROM @Data R1
INNER JOIN @Data R2
ON R1.Team < R2.Team
选择
R1.团队+VS'+R2.团队作为[输出]
来自@Data R1
内部连接@Data R2
在R1上。团队
请提供样本数据和预期结果。@weweweshemenance…我已为样本数据和所需输出添加了一个图像。请帮助我获取此解决方案。
SELECT
R1.Team + ' VS ' + R2.Team AS [Output]
FROM @Data R1
INNER JOIN @Data R2
ON R1.Team < R2.Team