Set değiştiricileri
Bir küme, ek veya değiştirilmiş bir seçimle değiştirilebilir. Bu tür bir değişim, set ifadesinde yazılabilir.
Değiştirici, her birini alan üzerinde yapılması gereken bir seçimin izlediği ve tümü < ile > arasına alınmış bir veya birkaç alan adından oluşur. Örnek: <Year={2007,+2008},Region={US}>. Alan adları ve alan değerleri normalde olduğu gibi alıntılanabilir; örneğin, <[Sales Region]={’West coast’, ’South America’}>.
Bir set değiştiricisi, önceki set tanımlayıcısının seçimini değiştirir. Hiçbir set tanımlayıcısına başvuruda bulunulmuyorsa, geçerli seçim durumu örtüktür.
Aşağıda açıklandığı gibi, seçimi değiştirmenin çeşitli yolları vardır.
Başka bir alanı temel alarak
Basit bir durum, başka bir alanın seçilen değerlerini temel alan bir seçimdir; örneğin <OrderDate = DeliveryDate>. Bu değiştirici, seçilen değerleri DeliveryDate öğesinden alır ve bunları OrderDate öğesine bir seçim olarak uygular. Birkaç yüzü aşacak kadar çok sayıda tekil değer mevcutsa, bu işlem CPU'yu yoğun olarak kullanır ve bu işlemden kaçınılmalıdır.
Öğe kümelerine bağlı olarak
Set ifadelerinin en yaygın örneği, küme ayraçları içindeki alan değerlerinden oluşan bir listeyi temel alan set ifadesidir. Bu değerler virgüllerle ayrılır (örn. <Year = {2007, 2008}>). Küme ayraçları, öğelerin açık alan değerleri veya alan değerlerinin aramaları olabileceği bir öğe setini tanımlar.
Listelenen değerler boşluk karakterleri veya özel karakterler içermiyorsa tırnak işareti eklenmesi gerekmez. Listelenen değerlerin alan değerleriyle eşleştirilmesi yeterlidir. Bu karşılaştırma büyük/küçük harf duyarlı değildir.
Listelenen değerler boşluk karakteri veya özel karakterler içeriyorsa veya joker karakterler kullanmak istiyorsanız değerleri tırnak işareti içine almanız gerekir. Listelenen değerler açık alan değerleriyse tek tırnak işareti kullanılmalıdır. Böylece, listelenen değerler ve ayrı alan değerleri arasında büyük/küçük harf duyarlı eşleşmeler yapılır.
Aramalar (joker karakterlerle, ilişkisel işleçlerle veya eşittir işaretiyle başlayan dizeler) için çift tırnak işareti kullanılmalıdır. Örneğin, <Ingredient = {"*Garlic*"}>, ’Garlic’ dizesini içeren tüm öğeleri seçer. Çift tırnak işaretleri yerine köşeli ayraç kullanılabilir (örn. <Ingredient = {[*Garlic*]}>). Çift tırnak işaretleri yerine vurgu işaretleri kullanılabilir (örn. <Ingredient = {`*Garlic*`}>). Aramalar büyük/küçük harf duyarlı değildir.
Önceki QlikView sürümlerinde, tek ve çift tırnak işaretleri arasında fark yoktur ve tırnak işaretleri içine alınan tüm dizeler aranacak öğeler olarak değerlendirilmiştir. Geriye dönük uyumluluğu sürdürmek için, önceki QlikView sürümleriyle oluşturulan belgeler, önceki sürümlerdeki gibi çalışmaya devam edecektir. Kasım 2017 veya sonraki QlikViewsürümleriyle oluşturulan belgelerde, iki tür tırnak işareti arasındaki fark göz önünde bulundurulacaktır.
Zorunlu dışlama
Son olarak, AND modundaki alanlar için zorunlu dışlama olasılığı da mevcuttur. Belirli alan değerlerine zorunlu hariç tutma uygulamak istiyorsanız, alan adının önünde “~” işaretini kullanmanız gerekir.
Örnekler ve sonuçlar:
Örnekler | Sonuçlar |
---|---|
sum( {1<Region= {USA} >} Sales ) | Geçerli seçimi göz ardı ederek, USA bölgesi için satışları döndürür. |
sum( {$<Region = >} Sales ) | Geçerli seçim için satışları döndürür, ancak 'Region' içindeki seçim kaldırılır. |
sum( {<Region = >} Sales ) |
Hemen üstteki örnek ile aynı sonucu döndürür. Değiştirilecek set atlandığında, $ varsayılır. Bilgi notuÖnceki iki örnekteki söz dizimi, 'Region' içinde "seçim yok" olarak yorumlanır; yani diğer seçimlerin olası olduğu düşünüldüğünde tüm bölgelerdir. Bu, bölge yok olarak yorumlanan <Region = {}> söz dizimi (veya örtük bir şekilde boş bir unsur setiyle sonuçlanan, eşittir işaretinin sağ tarafındaki herhangi bir diğer metin) ile eşdeğer değildir.
|
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) | Geçerli seçim için satışları döndürür, ancak hem 'Year' hem de 'Region' içindeki yeni seçimleri içerir. |
sum( {$<~Ingredient = {“*garlic*”}>} Sales ) |
Ingredient alanı AND modundadır. 'garlic' dizesini içeren tüm Ingredients üzerinde zorunlu dışlama ile, geçerli seçim için satışları döndürür. |
sum( {$<Year = {“2*”}>} Sales ) | "2" basamağıyla başlayan tüm yıllar, yani büyük olasılıkla 'Year' alanında seçilen, 2000 yılı ve sonraki yıllar ile, geçerli seçim için satışları döndürür. |
sum( {$<Year = {“2*”,”198*”}>} Sales ) | Yukarıdaki gibidir; ancak bu kez seçime 1980'ler de dahil edilir. |
sum( {$<Year = {“>1978<2004”}>} Sales ) | Geçerli seçimler için satışları, satışın toplanacağı yıl aralığının kapsamını belirlemek için kullanılan sayısal bir aramayla döndürür. |
Metin nesneleri gibi nesnelerde belirli alan değerlerinin dışlanmasını zorlamak istiyorsanız kod söz dizimini değiştirmeniz gerekir. Örneğin, kod deyiminiz şöyle olursa:
=count({<ANDActor=>}DISTINCT Title)
Şöyle değiştirin:
=count({<~ANDActor=, ANDActor=>} DISTINCT Title)