Ana içeriğe geç

SubField - kod ve grafik fonksiyonu

Subfield(), bir üst dize alanından alt dize bileşenlerini çıkarmak için kullanılır ve burada orijinal kayıt alanları ayırıcı ile ayrılmış iki veya daha fazla bölümden oluşur.

Subfield() fonksiyonu örneğin, tam adlardan oluşan bir kayıt listesinden adı veya soyadı çıkarmak, bir yol adının bileşen parçalarına çıkarmak veya virgülle ayrılmış tablolardan verileri çıkarmak için kullanılabilir.

Subfield() fonksiyonunu bir LOAD deyimi içinde isteğe bağlı field_no parametresini hariç bırakarak kullanırsanız, her bir alt dize için bir tam kayıt üretilir. Subfield() kullanılarak birkaç alan yüklenirse, tüm kombinasyonların Kartezyen çarpımları oluşturulur.

Söz Dizimi:  

SubField(text, delimiter[, field_no ])

Dönüş verileri türü: dize

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

SubField bağımsız değişkenleri
Bağımsız Değişken Açıklama
text Orijinal dize. Bu bir sabit kodlanmış metin, değişken, dolar işareti genişletmesi veya başka bir ifade olabilir.
delimiter Dizeyi bileşen parçalarına ayıran text girişi içindeki bir karakter.
field_no

İsteğe bağlı üçüncü bağımsız değişken, text ana dizesinin hangi alt dizelerinin döndürüleceğini belirten bir tamsayıdır.

  • field_no pozitif değer ise, alt dizeler soldan sağa çıkarılır.
  • field_no negatif değer ise, alt dizeler sağdan sola çıkarılır.
İpucu notu Len(), Right(), Left(), Mid() gibi fonksiyonların ve diğer dize fonksiyonlarının karmaşık kombinasyonlarını kullanmak yerine SubField() kullanılabilir.

Örnekler ve sonuçlar:  

Örnekler 1-3
Örnek Sonuç
SubField('abc;cde;efg', ';', 2) 'cde' döndürür
SubField('', ';', 1) NULL döndürür
SubField(';', ';', 1) Boş bir dize döndürür

Örnek kodu belgenize ekleyin ve çalıştırın. Ardından, sonucu görmek için belgenizdeki bir sayfaya en azından sonuçlar sütununda listelenen alanları ekleyin.

FullName:

LOAD * inline [

Name

'Dave Owen'

'Joe Tem'

];

 

SepNames:

Load Name,

SubField(Name, ' ',1) as FirstName,

SubField(Name, ' ',-1) as Surname

Resident FullName;

Drop Table FullName;

Örnek 4
Name FirstName Surname
Dave Owen Dave Owen
Joe Tem Joe Tem

vMyPath,

Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps; yol adını içeren bir değişkeniniz olduğunu varsayalım.

Metin ve resim grafiğinde aşağıda örnekleri verilen bir ölçü ekleyebilirsiniz:
SubField(vMyPath, '\',-3), bu, vMyPath değişkeninin sağ ucundaki üçüncü alt dize olduğundan 'Qlik' ile sonuçlanır.

Bu örnekte, tek bir Subfield() alanından nasıl birden fazla satırın oluşturulduğu gösterilmiştir.

Örnek kodu belgenize ekleyin ve çalıştırın. Ardından, sonucu görmek için belgenizdeki bir sayfaya en azından sonuçlar sütununda listelenen alanları ekleyin.

LOAD DISTINCT

Player,

SubField(Project,',') as Project;

 

Load * inline [

Player|Project

Neil|Music,OST

Jo|Music

Mike|Music,OST,Video

] (delimiter is '|');

Örnek 5
Player Project
Neil Music
Neil OST
Jo Music
Mike Music
Mike OST
Mike Video

Bu örnekte, aynı LOAD deyimi içinden, Subfield() fonksiyonunun birden çok örneğini, her biri field_no parametresi dışarıda bırakılmış olarak kullanmanın, tüm kombinasyonların Kartezyen ürünlerini nasıl oluşturduğu gösterilmektedir. DISTINCT seçeneği, çoğaltılmış kayıt oluşturmamak için kullanılır.

Örnek kodu belgenize ekleyin ve çalıştırın. Ardından, sonucu görmek için belgenizdeki bir sayfaya en azından sonuçlar sütununda listelenen alanları ekleyin.

LOAD DISTINCT

Instrument,

SubField(Player,',') as Player,

SubField(Project,',') as Project;

 

Load * inline [

Instrument|Player|Project

Guitar|Neil,Mike|Music,Video

Guitar|Neil|Music,OST

Synth|Neil,Jen|Music,Video,OST

Synth|Jo|Music

Guitar|Neil,Mike|Music,OST

] (delimiter is '|');

Örnek 6
Instrument Player Project
Guitar Mike Music
Guitar Mike Video
Guitar Mike OST
Guitar Neil Music
Guitar Neil Video
Guitar Neil OST
Synth Jen Music
Synth Jen Video
Synth Jen OST
Synth Jo Music
Synth Neil Music
Synth Neil Video
Synth Neil OST

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