T-SQL ile Kura Çekimi – Rastgele Kayit Çekme

T-SQL ile Kura Çekimi

Merhaba, Is yerindeki oda degisimi esnasinda beraber çalistigimiz arkadaslari yeni odamizdaki yerlerine random olarak atayacak bir sql yazdim. Is hayatinda kullanilmayacak olsada belki birilerinin isine yarar diyerek bunu sizlerle paylasmak istedim.

Sorgunu ilk olarak personel ve masa listesini olusturuyor, ve bu iki tabloyu bir biri ile kartezyen çarpimina tabi tutuyor.

Kartezyen çarpiminin sonucunda olusan tabloya bir adet Id alani ekliyor. Bunu yaparken newid fonksiyonunu kullanarak random bir Guid olusturuyoruz.

Olusturdugumuz bu tabloyu ise Her Masa Adi için Ad ve ID alani kolonu bazinda siralandiriyoruz. ID bilgisi rastgele olarak atandigi için siralamada her seferinde rastgele oluyor.Sonuç olarak sadece 1 numarali sirayi alirsak her personel rastgele olarak bir masaya atanmis oluyor.

.

Asagidaki sorguda isimler degistirilmistir 🙂

create table #Personel
(
Ad varchar(100)
)
create table #Masa
(
MasaAdi varchar(100)
)

insert into #Personel values('Sabri'),('Mustafa'),('Mesut'),('Tamer'),('Ayse'),('AdemE'),('AdemK'),('Serhan'),('Merve'),('Ayla')
insert into #Masa values('Masa1'),('Masa2'),('Masa3'),('Masa4'),('Masa5'),('Masa6'),('Masa7'),('Masa8'),('Masa9'),('Masa10')

select Ad,MasaAdi from
(
select ROW_NUMBER() over(partition by MasaAdi order by ID,Ad ) as Sira,ID,Ad,MasaAdi
from (
select newid() as ID,Ad,MasaAdi from #personel
left outer join #Masa on 1=1
)t
) t2 where Sira = 1 order by Ad

.

Sorguyu her çalistirdiginizda yeni bir sonuç üretir. Kura çekimleri için SQL kullanmak isteyen hastalar için kullanisli diye düsünüyorum 🙂

Ad MasaAdi
AdemE Masa5
AdemK Masa9
Ayla Masa6
Ayse Masa2
Merve Masa3
Mesut Masa7
Mustafa Masa10
Sabri Masa4
Serhan Masa8
Tamer Masa1
.

Sorguyu her çalistirdiginizda sonuçlarin degistigini göreceksiniz.

6 thoughts on “T-SQL ile Kura Çekimi – Rastgele Kayit Çekme

  1. Abi Üniversite Tercihleriyle Ugrasiyorum Abi 16 Yer Belirledim Kafamda 14 Yer Kaldi Bakalim Hayirlisi 14 Yer Için Kararsiz Kaldim 🙂 Isden Güçden Firsat Bulamiyordum Kendi Isim Degildi Eve Gelince Yorgun Oluyordum 🙂 Simdi Bostayim Üniversiteye Gidersem Bile PHP Hakkinda Konulari Eklerim Yavas Yavas Ögrenmek Isteyen Arkadaslara Faydasi Olur.

  2. Ellerine Saglik Sabri Abi Gene Döktürmüssün. Uzun Zaman Aradan Sonra Tekrar Yazilim Mutfagina Geldim. Artik PHP Hakkinda Baya Ekleme Yapacagim Makalelere Allah Izin Verirse.

  3. Neden SQL sorulabilecek en güzel soru 🙂

     cevap basit, çünkü veriambari bölümünde çalisiyorum ve en iyi bildigimiz sey SQL 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir