# Exists Komut dosyası fonksiyonu

Exists(), veri yükleme komut 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.

Bilgi notuBir alan değerinin yüklenip yüklenmediğini belirlemek için Not Exists() işlevini de kullanabilirsiniz ancak Not Exists() işlevini where cümlesinde kullanıyorsanız dikkatli olmanız önerilir. Exists() işlevi hem önceden yüklenen tabloları hem de geçerli tablodaki ö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üş verileri türü: Boolean

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

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 belirtik bir alan adı kullanabilirsiniz.<br><br>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.<br><br>Bilgi notuGeçerli load deyiminde yer almayan alanları referans alamazsınız.<br><br>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. |

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/InterRecordFunctions/Exists.htm)

#### Örnekler ve sonuçlar:

1. Örnek

`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.

2. Örnek

`Exists(Employee, 
 'Bill')`

Employee alanının geçerli içeriğinde 'Bill' alan değeri bulunursa -1 (True) sonucunu döndürür.

Ö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;
```

Bu da, Employee ve Address boyutlarını kullanarak tablo görselleştirmesinde kullanabileceğiniz bir tabloyla sonuçlanır.

where yan tümcesi; `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.

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 cümlesi, not: `where not Exists (Employee)` 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. İlk satırı Lucy değeriyle yüklerseniz, Employee alanına dahil edilir. Bu nedenle ikinci satır kontrol edildiğinde değer zaten mevcuttur.

Sonuçlar

| Çalışan | Adres |
| --- | --- |
| Mary | London |
| Lucy | Madrid |

Örnek 5

Bu örnekte tüm değerlerin yüklenmesi 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;
```

Tüm Lucy değerlerini alabilmek için iki şey değiştirilmiştir:

* Employees tablosundan öncesine bir yükleme eklenmiş; Employee Name olarak yeniden adlandırılmıştır.

  `
  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. Lucy olan ikinci satır işaretlendiğinde, Name içinde hala mevcut değildir.

Sonuçlar

| Çalışan | Adres |
| --- | --- |
| Mary | London |
| Lucy | Madrid |
| Lucy | Paris |