如何获得SQL格式的输出
我有这样的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 +
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-是的,加入是一个有趣的话题。