下記SQLだとnullのカラムも抽出されてしまいますがヒントになればと思い回答します。
(恐らく「副問合せ」若しくは「自己結合」を使用しないと
望んだ結果が実現できないとは思いますが…)
※大文字・小文字/改行・インデント等が
適切ではない箇所があるかと思いますがご了承ください
先の回答者の方が記載の通り
SQLはDBMSごとに方言の差が大きい...(中略)...DBMSの名称やバージョンを記載
なので
主要なDBMSで動くはずです
といった回答になります。
DDL
CREATE TABLE IF NOT EXISTS `team` (
`id` int(6) unsigned NOT NULL,
`class` int(3) unsigned NOT NULL,
`name` varchar(10) NOT NULL,
PRIMARY KEY (`id`, `class`)
) DEFAULT CHARSET = utf8;
INSERT INTO `team` (`id`, `class`, `name`) VALUES
('1', '1', 'hoge'),
('2', '1', 'fuga'),
('3', '1', 'piyo'),
('4', '2', 'hogehoge'),
('5', '2', 'fugafuga'),
('6', '2', 'piyopiyo');
DML
SELECT
id,
MAX(CASE WHEN class = 1 THEN name END) AS class1,
MAX(CASE WHEN class = 2 THEN name END) AS class2
FROM
team
WHERE class IN(1, 2)
GROUP BY id
■補足(2023/08 回答時点)
「SQL Server 2005」 以降 及び
「Oracle 11g R1」で「Pivot/UnPivot」が使用できるので
上記環境であればそちらも検討してみてください。