Ana içeriğe geç

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.

Bilgi notuAyrıca bir alan değerinin yüklenip yüklenmediğini belirlemek için Not Exists() fonksiyonunu da kullanabilirsiniz. Ancak bir where yan tümcesinde Not Exists() fonksiyonunu kullanıyorsanız dikkat etmeniz önerilir. Exists() fonksiyonu hem önceden yüklenen tabloları hem de geçerli tabloya önceden yüklenen değerleri test eder. Bu nedenle yalnızca ilk oluşum yüklenir. İkinci oluşumla karşılaşıldığında değer zaten yüklenmiştir. Daha fazla bilgi için örneklere bakın.

Söz Dizimi:  

Exists(field_name [, expr] )

Dönüş veri türü: Boole

Bağımsız Değişkenler:  

Exists bağımsız değişkenleri
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:  

Employees: LOAD * inline [ Employee|ID|Salary Bill|001|20000 John|002|30000 Steve|003|35000 ] (delimiter is '|');   Citizens: Load * inline [ Employee|Address Bill|New York Mary|London Steve|Chicago Lucy|Madrid Lucy|Paris John|Miami ] (delimiter is '|') where Exists (Employee); Drop Tables Employees;

 

Bunun sonucunda veri modelinde Citizens 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), Citizens tablosundan gelen adlardan yalnızca Employees içinde de bulunan adların yeni tabloya yüklenmesi anlamını taşır. Drop ifadesi karışıklığı önlemek için geçici Employees tablolarını kaldırır.

Örnek 3 sonuçları
Employee Address
Bill New York
John Miami
Steve Chicago

Örnek 4:  

Employees: Load * inline [ Employee|ID|Salary Bill|001|20000 John|002|30000 Steve|003|35000 ] (delimiter is '|');   Citizens: Load * inline [ Employee|Address Bill|New York Mary|London Steve|Chicago Lucy|Madrid Lucy|Paris John|Miami ] (delimiter is '|') where not Exists (Employee);   Drop Tables Employees;

 

where yan tümcesi, not: where not Exists (Employee) 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. İlk satırı Lucy değeriyle yüklediğinizde, bu değer Employee alanına dahil edilir. Bu nedenle, ikinci satır denetlendiğinde değer zaten mevcut olur.

Örnek 4 sonuçları
Employee Address
Mary London
Lucy Madrid

Örnek 5:  

Bu örnekte, tüm değerlerin nasıl yükleneceği gösterilmektedir.

Employees: Load Employee As Name; LOAD * inline [ Employee|ID|Salary Bill|001|20000 John|002|30000 Steve|003|35000 ] (delimiter is '|');   Citizens: Load * inline [ Employee|Address Bill|New York Mary|London Steve|Chicago Lucy|Madrid Lucy|Paris John|Miami ] (delimiter is '|') where not Exists (Name, Employee);   Drop Tables Employees;

 

Lucy ile ilgili tüm değerleri alabilmek için iki şey değiştirildi:

  • Employees tablosuna, Employee çalışanının Name olarak yeniden adlandırıldığı bir önceki yükleme eklenmiştir.

    Load Employee As Name;

  • Citizens içindeki Where koşulu şu şekilde değiştirilmiştir:

    not Exists (Name, Employee).

Bu, Name ve Employee için alanlar oluşturur. İkinci Lucy satırı denetlendiğinde, Name içinde hala mevcut değildir.

Örnek 5 sonuçları
Employee Address
Mary London
Lucy Madrid
Lucy Paris

Örnekte kullanılan veriler:

LOAD * inline [ Employee|ID|Salary Bill|001|20000 John|002|30000 Steve|003|35000 ] (delimiter is '|');   Citizens: Load * inline [ Employee|Address Bill|New York Mary|London Steve|Chicago Lucy|Madrid Lucy|Paris John|Miami ] (delimiter is '|');

Bu sayfa size yardımcı oldu mu?

Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!

Analiz Modernleştirme Programına katılın

Remove banner from view

Analiz Modernleştirme Programı ile değerli QlikView uygulamalarınızı ödün vermeden modernleştirin. Bize ulaşmak ve daha fazla bilgi almak için buraya tıklayın: ampquestions@qlik.com