Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
✅ Azure Stream Analytics ✅ Fabric Olay Akışı
APPLY işleci, sorgunun dış tablo ifadesi tarafından döndürülen her satır için bir tablo-değerli işlevi çağırmanıza olanak tanır. Tablo değerli işlev, sağ giriş, dış tablo ifadesi ise sol giriş işlevi görür. Sağ giriş, sol girişten her satır için değerlendirilir ve üretilen satırlar son çıkış için birleştirilir. APPLY işleci tarafından üretilen sütunların listesi, sol girişteki sütun kümesidir ve ardından sağ giriş tarafından döndürülen sütunların listesidir.
APPLY'in iki biçimi vardır: CROSS APPLY ve OUTER APPLY.
CROSS APPLY yalnızca dış tablodaki tablo değerli işlevden bir sonuç kümesi oluşturan satırları döndürür. CROSS APPLY sonucu TIMESTAMP BY hedef değeri olarak kullanılamaz. Ancak, CROSS APPLY işlemini gerçekleştiren bir Azure Stream Analytics işi kullanabilir ve TIMESTAMP BY işlemini gerçekleştirmek için ikinci bir iş kullanabilirsiniz.
OUTER APPLY, hem sonuç kümesi oluşturan satırları hem de tablo değerli işlevi tarafından üretilen sütunlarda NULL değerlerle sonuç kümesi oluşturmayan satırları döndürür.
Azure Stream Analytics'te Dizi ve Kayıt türü alanlarıyla çalışmayı kolaylaştıran iki tablo değerli işlev vardır. Bunlar GetArrayElements ve GetRecordProperties'dir.
Sözdizimi
<input> {CROSS | OUTER} APPLY <elements_selector>
<input> ::= input_name | input_alias
<elements_selector> ::=
{GetArrayElements | GetRecordProperties} (<column_name>) AS element_name
Tartışmalar
input_name | input_alias
Giriş akışının adı veya diğer adı.
column_name
Giriş akışının sütununun adı.
element_name
Tablo değerli işlevin sonucunu içeren yeni sütunun adı.
Dönüş Türleri
Çıkış, ilk yükü içeren bir kayıt ve tablo değerli işlevin sonucunu içeren 'element_name' kaydıdır.
GetArrayElements işlevi için sonuç iki alanı olan bir kayıt olacaktır:
ArrayIndex: dizideki öğenin dizini
ArrayValue: dizideki öğesinin değeri.
GetRecordProperties işlevi için sonuç iki alanı olan bir kayıt olacaktır:
PropertyName: Kayıttaki özelliğin adı.
PropertyValue: kayıttaki özelliğin değeri.
Örnekler
Bu örnekte, gişe senaryosunun kapsamını genişleterek, otomobillerin birden fazla plakası olabileceğini varsayarız (örneğin, römork çekme işleminin iki tane olması gerekir). Çapraz/dış uygulama, bu diziyi düzleştirmek için kullanılabilir, yani lisans plakası başına bir satır alır.
CREATE TABLE input(TollId nvarchar(max), EntryTime datetime, Licenses array)
SELECT e.TollId, e.EntryTime, flat.ArrayValue AS licensePlate
FROM input AS e
CROSS APPLY GetArrayElements(e.Licenses) AS flat
Sorgu, herhangi bir plakası olmayan arabaları izlemek için dış uygulama özelliğini kullanacak şekilde değiştirilebilir.
SELECT e.TollId, e.EntryTime,
flat.ArrayValue AS licensePlate, flat.ArrayIndex AS licensePlateIndex
FROM input AS e
OUTER APPLY GetArrayElements(e.Licenses) AS flat
İç içe dizileri (dizi dizisi) kullanan başka bir örnek.
WITH firstQuery AS (
SELECT input.TollId, input.EntryTime,
flat.ArrayIndex AS i1, flat.ArrayValue AS licenses
FROM input
CROSS APPLY GetArrayElements(input.ArrayOfArray) AS flat)
SELECT firstQuery.TollId, firstQuery.EntryTime, firstQuery.i1,
flat2.ArrayIndex AS i2, flat2.ArrayValue AS license
FROM firstQuery
CROSS APPLY GetArrayElements(firstQuery.licenses) AS flat2