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:
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.
|
Örnekler ve sonuçlar:
Ö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;
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 '|');
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 '|');
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 |