Anda dapat menggunakan variabel untuk memeriksa apakah id terakhir sama dengan id saat ini, dan dalam hal ini keluaran null atau '' sebagai gantinya.
select
case when c.ClientId <> @clientid then c.Name else '' end as ClientName,
case when c.ClientId <> @clientid then @ClientId := c.ClientId else '' end as ClientId,
p.ContactId,
p.Name as ContactName
from
Clients c
inner join Contacts p on p.ClientId = c.Clientid
, (select @clientid := -1) x
order by
c.ClientId, p.ContactId
Contoh:http://sqlfiddle.com/#!2/658e4c/6
Catatan, ini agak hacky. Saya sengaja menjadikan ClientId sebagai bidang kedua, sehingga saya dapat mengubah dan mengembalikan variabel clientId di bidang yang sama. Dalam kasus lain yang lebih rumit, Anda mungkin harus melakukannya di bidang terpisah. Namun untuk menghilangkan bidang placeholder dari hasil, Anda harus menyematkan seluruh kueri dalam subpilihan, dan menentukan bidang yang diinginkan dalam urutan yang benar pada kueri tingkat atas.