SQL ile rastgele kayıt çekebilmek için farklı sql dillerinden farklı bir anahtar kelime kullanılmaktadır bu makalemizde en popüler çoğu veritabanı yönetim sistemlerinden rastgele kayıt çekmenin sözdizimini göreceğiz.
Alttaki sql cümlelerinde birçok VTYS(Veritabanı Yönetim Sistemi)’de rastgele satır alma işlemi için örnek hazırlanmıştır. Örnekleri daha iyi anlamak için kullanmış olduğunuz VTYS’ye uygun sql cümlesini kullanınız ve gerekli yerleri kendinize göre düzenleyiniz.
MySQL ile rastgele bir satır getirme
1 2 3 | SELECT column FROM table ORDER BY RAND() LIMIT 1 |
PostgreSQL ile rastgele bir satır getirme
1 2 3 | SELECT column FROM table ORDER BY RANDOM() LIMIT 1 |
Microsoft SQL Server ile rastgele bir satır getirme
1 2 | SELECT TOP 1 column FROM table ORDER BY NEWID() |
IBM DB2 ile rastgele bir satır getirme
1 2 3 | SELECT column, RAND() as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY |
IBM DB2 ile rastgele bir satır getirme
1 2 3 4 | SELECT column FROM ( SELECT column FROM table ORDER BY dbms_random.value ) WHERE rownum = 1 |
Merhaba, diyelim ki veritabanında isim ve puan columnlarımız var. Rastgele olarak isimi çektiğimizde o isme bağlı puanı çekmeyi nasıl yapabiliriz ?
Eğer puan ve isim kolonlarınız aynı tablo içerisindeyse zaten rastgele kayıt diye bahsettiğim yöntemle ister kolon isterseniz tüm satırı alabiliyorsunuz ama farklı tablolarda ise o zaman rastgele aldığınız kaydın id’si ile eşleştirme sağlayıp bu şekilde puanı çekebilirsiniz.
Merhaba bu id eşleştirmesini nasıl sağlayabiliriz. Ben SQL Server’da BorrowedBooks tabloma Books tablosundan herhangi bir id yi girdiğimde bu ID nin Books tablosunda stock sayısını 1 azaltan bir trigger yazmak istiyorum. Fakat o id leri nasıl eşleyeceğimi bulamıyorum. BorroweddBooks’a en son girilen id yi books table da 1 azaltmam lazım