If else yapısına sahip olsa da bazen tek sorguda kontrol yapıp sorgulama yapmak isteyebilirsiniz. Böyle durumlarda exists fonksiyonu imdadınıza yetişecektir. Nasıl kullanılır inceleyelim.
Öncelikle test veritabanı yüklü değilse, linkte tarif edildiği gibi yükleyebilirsiniz. http://www.blog.saydogmus.com/2022/03/30/157/
Sonrasında örnek veritabanından bir tablo seçiyoruz. Benim tercihim [AdventureWorks2019].[Person].[Person] tablosu. Person tablosunda bir isim aratttıralım eğer varsa sorguyu çalıştır diyelim.
Öncelikle hiç şart yokken sorgumuzu çalıştıralım;
select * from [AdventureWorks2019].[Person].[Person]
şimdi şartımızı ekleyerek çalıştıralım, olmayan bir değer yazdığımızda çalışıp çalışmadığını görelim.
select * from [AdventureWorks2019].[Person].[Person] where exists(select * from [AdventureWorks2019].[Person].[Person] where FirstName='Serdal')
ilk yaptığımız sorguya where exists’ten itibaren şartımızı eklemiş olduk. Şartımız; firstname’ler içinde Serdal ismi var mı? Olmadığı için tablomuz boş kalacaktır. Yani exists kısmında yazdığımız sorgu sonucunda herhangi bir değer dönerse “true” olarak kabul edilecek ve where den önceki kısım çalıştırılacaktır.
Şimdi şartımızı True değeri döndürecek şekilde güncelleyelim. Roberto ismi varsa sorgumuz çalışsın.
select * from [AdventureWorks2019].[Person].[Person] where exists(select * from [AdventureWorks2019].[Person].[Person] where FirstName='Roberto')
Aşağıda da göreceğiniz gibi tüm tablo geldi sorgu sonucunda. Gelen tablonun ilk yazdığımız
select * from [AdventureWorks2019].[Person].[Person]
sorgusuyla aynı satırlara sahip olduğuna lütfen dikkat ediniz.Örnek veritabanında testler yaparak konuyla ilgili pratik yapmanızı öneririm. Kolay gelsin.