Exists - kod fonksiyonu
Exists() , belirli bir alan değerinin komut dosyasında alana zaten yüklenmiş olup olmadığını belirler. Fonksiyon, TRUE veya FALSE değerini döndürür, bu nedenle bir LOAD deyiminin veya IF işlevinin where yan tümcesinde kullanılabilir.
Söz Dizimi:
Exists(field_name [, expr] )
Dönüş veri türü: Boole
Bağımsız Değişkenler:
Bağımsız Değişken | Açıklama |
---|---|
field_name |
Değer aramak istediğiniz alanın adı. Tırnak işaretleri olmadan açık alan adı kullanabilirsiniz. Alan önceden kod tarafından yüklenmiş olmalıdır. Başka bir deyişle, kodda bir yan tümcede yüklenmiş olan bir alana başvuramazsınız. |
expr |
Varsa denetlemek istediğiniz değer. Geçerli load deyiminde bir veya birkaç alana başvuran bir ifade veya açık bir değer kullanabilirsiniz. Bilgi notuGeçerli load deyiminde yer almayan alanlara başvuramazsınız.
Bu bağımsız değişken isteğe bağlıdır. Bunu atlarsanız fonksiyon, geçerli kayıtta field_name değerinin önceden mevcut olup olmadığını denetler. |
Örnek 1:
Exists (Employee)
Geçerli kayıttaki Employee alanının değeri bu alanı içeren daha önce okunmuş herhangi bir kayıtta zaten mevcutsa -1 (True) sonucunu döndürür.
Örnek 2:
Exists(Employee, 'Bill')
Employee alanının geçerli içeriğinde 'Bill' alan değeri bulunursa -1 (True) sonucunu döndürür.
Exists (Employee, Employee) ve Exists (Employee) deyimleri eşdeğerdir.
Örnek 3:
Bunun sonucunda veri modelinde EmployeeAddresses adında bir tablo elde edilir ve Employee ile Address boyutları kullanılarak tablo grafiği olarak görüntülenebilir.
where cümlesi: where Exists (Employee, Name), Citizens tablosundan gelen adlardan yalnızca Employees içinde de bulunan adların yeni tabloya yüklenmesi anlamını taşır. Drop deyimi karışıklığı önlemek için geçici Employees ve Citizens tablolarını kaldırır.
Employee | Address |
---|---|
Bill | New York |
John | Miami |
Steve | Chicago |
Örnek 4:
EmployeeAddresses tablosunu oluşturan önceki örnekte örnek verilerdeki deyimi where not Exists kullanarak aşağıdakiyle değiştirme.
NonEmployee:
Load Name as Employee, Address Resident Citizens where not Exists (Employee, Name);
where yan tümcesi, not: where not Exists (Employee, Name) içerir.
Başka bir deyişle yalnızca, Employees içinde bulunmayan Citizens tablosundaki adlar yeni tabloya yüklenir.
Citizens tablosunda Lucy için iki değer vardır ancak sonuç tablosuna yalnızca biri dahil edilir. Birinci satırı yüklediğinizde değer, Employee sembol tablosuna dahil edilir. Bu nedenle, ikinci satır denetlendiğinde değer artık mevcuttur.
Sonraki örnekte, tüm değerlerin nasıl yükleneceği gösterilmektedir.
Employee | Address |
---|---|
Mary | London |
Lucy | Madrid |
Örnek 5:
Tüm Lucy değerlerini alabilmek için iki şeyi değiştirmeniz gerekir:
Employees için öncelikli yükleme ekleyin; Employee öğesini Name olarak yeniden adlandırırsınız.
Load Employee As Name, ID, Salary;
Citizens içinde Where koşulunu şuna değiştirin:
not Exists (Name, Employee).
Böylece Name ve Employee için farklı sembol tabloları oluşturulur. İkinci Lucy satırı denetlendiğinde, halen Name içinde mevcut değildir.
Employee | Address |
---|---|
Mary | London |
Lucy | Madrid |
Lucy | Paris |
Örnekte kullanılan veriler: