0
我有這樣的SQL表,如何獲得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表,如何獲得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
你也可以做它用一個簡單的內部聯接爲好。這裏你去...
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你也可以使用'CROSS JOIN'(我猜這對你來說也是新的);和'WHERE a.Column_TEAM <> b.Column_TEAM' –
@ Ananda-SteelTownBoy:是的,連接是一個有趣的話題。 [我最近寫了一篇關於各種不同連接類型的文章](https://blog.jooq.org/2017/01/12/a-probably-incomplete-comprehensive-guide-to-the-many-different -ways到加入桌式SQL /) –