Exists - kod fonksiyonu
Exists(), veri kod dosyasında alana daha önce belirli bir alan değerinin yüklenip yüklenmediğini belirler. Fonksiyon TRUE ya da FALSE sonucunu döndürdüğünden, bir LOAD deyiminin veya bir IF deyiminin where cümlesinde kullanılabilir.
Syntax:
Exists(field_name [, expr])
Return data type: Boole
Arguments:
Bağımsız Değişken | Açıklama |
---|---|
field_name |
Değer aramak istediğiniz alanın adı. Tırnak işaretleri olmadan belirtik bir alan adı kullanabilirsiniz. Alan, komut dosyası tarafından önceden yüklenmiş olmalıdır. Başka bir deyişle, komut dosyasının daha derinindeki bir cümlede yüklenen bir alanı referans alamazsınız. |
expr |
Varsa, denetlemek istediğiniz değer. Geçerli load deyiminde bir veya birkaç alanı referans alan bir ifade veya belirtik bir değer kullanabilirsiniz. Bilgi notuGeçerli load deyiminde yer almayan alanları referans alamazsınız.
Bu bağımsız değişken isteğe bağlıdır. Bunu atarsanız işlev, geçerli kayıttaki field_name değerinin önceden var olup olmadığını denetler. |
Örnekte kullanılan veriler:
Example:
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.
Exists (Employee, Employee) ve Exists (Employee) deyimleri eşdeğerdir.
Example:
Exists(Employee, 'Bill')
Employee alanının geçerli içeriğinde 'Bill' alan değeri bulunursa -1 (True) sonucunu döndürür.
Example:
Bu da, Employee ve Address boyutlarını kullanarak tablo görselleştirmesinde kullanabileceğiniz bir tabloyla sonuçlanır.
where cümlesi: where Exists (Employee), 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 Employees tablosunu kaldırır.
Employee | Address |
Bill | New York |
John | Miami |
Steve | Chicago |
Example:
where cümlesi, not: where not Exists (Employee, Name) ifadesini içerir.
Başka bir deyişle, yalnızca Employees içinde olmayan Citizens tablosundaki adlar yeni tabloya yüklenir.
Citizens tablosunda Lucy için iki değer olduğunu, ancak sonuç tablosunda yalnızca bir değer yer aldığını unutmayın. Birinci satırı yüklediğinizde değer, Employee simge tablosuna dahil edilir. Bu nedenle, ikinci satır denetlendiğinde şimdi değer vardır.
Sonraki örnekte, tüm değerlerin nasıl yükleneceği gösterilmektedir.
Employee | Address |
---|---|
Mary | London |
Lucy | Madrid |
Example:
Lucy için tüm değerleri alabilmek istiyorsanız iki şeyi değiştirmeniz gerekir:
-
Employees öğesine bir öncelikli load ekleyin; burada 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ı simge tabloları oluşturulur. Lucy için ikinci satır denetlendiğinde, Name içinde halen yoktur.
Employee | Address |
---|---|
Mary | London |
Lucy | Madrid |
Lucy | Paris |