Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/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 Server_Sql Server 2008_Tsql - Fatal编程技术网

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