如何获得SQL格式的输出

如何获得SQL格式的输出,sql,sql-server,database,postgresql,sql-server-2008,Sql,Sql Server,Database,Postgresql,Sql Server 2008,我有这样的SQL表 Column_TEAM AUS USA IND RUS 预期结果是一支球队只能和另一支球队比赛一次 AUS vs USA AUS vs IND AUS vs RUS USA vs IND USA vs RUS IND vs RUS 我试着用排名函数进行排名,但没有成功。 请在SQL Server或PostgreSQL中帮助我,您需要按如下方式自行加入您的表: -- SQL Server concatenation syntax SELECT a.Column_TEAM +

我有这样的SQL表

Column_TEAM
AUS
USA
IND
RUS
预期结果是一支球队只能和另一支球队比赛一次

AUS vs USA
AUS vs IND
AUS vs RUS
USA vs IND
USA vs RUS
IND vs RUS
我试着用排名函数进行排名,但没有成功。
请在SQL Server或PostgreSQL中帮助我,您需要按如下方式自行加入您的表:

-- SQL Server concatenation syntax
SELECT a.Column_TEAM + ' vs ' + b.Column_TEAM
FROM my_table a
JOIN my_table b ON a.Column_TEAM < b.Column_TEAM

-- PostgreSQL concatenation syntax
SELECT a.Column_TEAM || ' vs ' || b.Column_TEAM
FROM my_table a
JOIN my_table b ON a.Column_TEAM < b.Column_TEAM

您需要按如下方式自联接表:

-- SQL Server concatenation syntax
SELECT a.Column_TEAM + ' vs ' + b.Column_TEAM
FROM my_table a
JOIN my_table b ON a.Column_TEAM < b.Column_TEAM

-- PostgreSQL concatenation syntax
SELECT a.Column_TEAM || ' vs ' || b.Column_TEAM
FROM my_table a
JOIN my_table b ON a.Column_TEAM < b.Column_TEAM

您也可以使用简单的内部联接来完成。给你

SELECT T2.CTRY2,T1.CTRY1
FROM 
(SELECT CTRY AS CTRY1,ROW_NUMBER() OVER(ORDER BY CTRY) AS R1 FROM (VALUES ('AUS'),('USA'),('IND'),('RUS') ) CT (CTRY)) T1

JOIN 

(SELECT CTRY AS CTRY2,ROW_NUMBER() OVER(ORDER BY CTRY) AS R2 FROM (VALUES ('AUS'),('USA'),('IND'),('RUS') ) CT (CTRY)) T2

ON T1.R1 > T2.R2
ORDER BY T1.CTRY1 ASC

您也可以使用简单的内部联接来完成。给你

SELECT T2.CTRY2,T1.CTRY1
FROM 
(SELECT CTRY AS CTRY1,ROW_NUMBER() OVER(ORDER BY CTRY) AS R1 FROM (VALUES ('AUS'),('USA'),('IND'),('RUS') ) CT (CTRY)) T1

JOIN 

(SELECT CTRY AS CTRY2,ROW_NUMBER() OVER(ORDER BY CTRY) AS R2 FROM (VALUES ('AUS'),('USA'),('IND'),('RUS') ) CT (CTRY)) T2

ON T1.R1 > T2.R2
ORDER BY T1.CTRY1 ASC

@Ananda SteelTownBoy你也可以使用交叉连接,我猜这对你来说也是新的;a队和b队在哪里_TEAM@Ananda-是的,加入是一个有趣的话题@Ananda SteelTownBoy你也可以使用交叉连接,我猜这对你来说也是新的;a队和b队在哪里_TEAM@Ananda-是的,加入是一个有趣的话题。