Distinct Kullanımı - PERCENT Kullanımı

Dizideki karakterleri like ile kontrol edip çağırmıştır. Peki bu karakterlerin belirli bir aralıkta olduğu takdirde o aralıktaki değerleri nasıl döndürebiliriz ?
Bunun cevabını aşağıda verelim.
İlk karakter için aralık vermek istiyorsak
select * from Products p where p.ProductName like '[A-C]%'  -- A, B ve C ile başlayanları döndürür.

Biraz daha gelişmiş şekilleri aşağıdadır.

[AC] a yada c arasında
[A-C] A dan C ye
[^AC] A C olmayan,
[^A-C] A C arasında olmayan,
'A[^C]%' Aile başlanan 2.hafri C ile başlamayan

select * from Products p where p.ProductName like '[^AC]%'
select * from Products p where p.ProductName like 'A[^C]%'
select * from Products p where p.ProductName like '%[AL]%' --içinde A ve L arayanları listeler
select * from Products p where p.ProductName not like '%[AL]%' -- içinde A ve L içermeyen


Distinct => aynı olanları bir defa gösterilmesini sağlar.

-- Müşterilerin Ülkeleri nerelerdir

select distinct Country from Customers

--kategorileri 5 - 9 - 10 olan ürünlerin adı ve fiyatlarını listeleyin

select p.ProductName,p.UnitPrice from Products p where p.CategoryID in (5,9,10)

--Ülkesi Germany, Sweeden, UK veya USA olan müşterilerimi listeleyin.

select * from Customers c where c.Country in ('Germany','Sweden','UK','USA')

-- Customer tablosundaki kayıtların yarınısı çekip listeleyin PERCENT yüzdelik hesabı %50 gibi

select top 50 PERCENT * from Customers c


--Alınan siparişlerin ürün fiyatlarına göre pahalıdan ucuza, eğer fiyat aynı ise adete göre azdan çoka sıralayınız. Burada order by dan sonra birden fazla tabloda belirtebiliriz

select od.OrderID,od.UnitPrice,od.Quantity from [Order Details] od order by od.UnitPrice desc,od.Quantity asc

Hiç yorum yok:

Yorum Gönder