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