--Tüm sorular ve Şıklarını seçer
SELECT s.Id,
s.Soru,
c.Secenek,
c.DogruCevap
FROM Sorular s
JOIN CevapSecenekleri c ON s.Id = c.SoruId
--Tüm rastgele 5 soru ve Şıkları
SELECT TOP 5 s.Id,
s.Soru,
c.Secenek,
c.DogruCevap
FROM Sorular s
JOIN CevapSecenekleri c ON s.Id = c.SoruId ORDER BY NEWID()
--Rastegele 5 soru
SELECT TOP 5 s.Id, s.Soru FROM Sorular s
ORDER BY NEWID()
--Rastegele 5 soru ve Cevap Seçenekleri
SELECT s.Id,s.Soru, c.Id, c.Secenek,c.DogruCevap FROM CevapSecenekleri c
INNER JOIN (SELECT TOP 5 s.Id, s.Soru FROM Sorular s
ORDER BY NEWID()) s ON c.SoruId= s.Id
--Rastegele 5 soru
SELECT TOP 5
c.Id, c.Soru
FROM (SELECT t.*, ROW_NUMBER() OVER(PARTITION BY t.Id
ORDER BY NEWID()) AS rank FROM Sorular t) c
WHERE c.rank = 1
ORDER BY NEWID()