Dokumentacja języka zapytań usługi Azure Digital Twins: Functions
Ten dokument zawiera informacje referencyjne dotyczące funkcji języka zapytań usługi Azure Digital Twins.
ARRAY_CONTAINS
Funkcja określająca, czy właściwość tablicy bliźniaczej reprezentacji bliźniaczej (obsługiwana w języku DTDL w wersji 3) zawiera inną określoną wartość.
Składnia
ARRAY_CONTAINS(<array-to-check>,<contained-value>)
Argumenty
<array-to-check>
: właściwość bliźniaczej reprezentacji typu tablicy, którą chcesz sprawdzić pod kątem określonej wartości<contained-value>
: ciąg, liczba całkowita, podwójna lub wartość logiczna reprezentująca wartość do sprawdzenia wewnątrz tablicy
Zwroty
Wartość logiczna wskazująca, czy tablica zawiera określoną wartość.
Przykład
Poniższe zapytanie zwraca nazwę wszystkich cyfrowych reprezentacji bliźniaczych, które mają właściwość floor_number
tablicy , a tablica przechowywana w tej właściwości zawiera wartość 2
.
SELECT T.name
FROM DIGITALTWINS T
WHERE ARRAY_CONTAINS (T.floor_number, 2)
Ograniczenia
Funkcja ARRAY_CONTAINS() ma następujące ograniczenia:
- Indeksowanie tablic nie jest obsługiwane.
- Na przykład
array-name[index] = 'foo_bar'
- Na przykład
- Podzapytania w ramach właściwości ARRAY_CONTAINS() nie są obsługiwane.
- Na przykład
SELECT T.name FROM DIGITALTWINS T WHERE ARRAY_CONTAINS (SELECT S.floor_number FROM DIGITALTWINS S, 4)
- Na przykład
- ARRAY_CONTAINS() nie jest obsługiwana we właściwościach relacji.
- Załóżmy na przykład, że
Floor.Contains
jest to relacja z Floor do Room i malift
właściwość o wartości["operating", "under maintenance", "under construction"]
. Zapytania takie jak te nie są obsługiwane:SELECT Room FROM DIGITALTWINS Floor JOIN Room RELATED Floor.Contains WHERE Floor.$dtId = 'Floor-35' AND ARRAY_CONTAINS(Floor.Contains.lift, "operating")
.
- Załóżmy na przykład, że
- ARRAY_CONTAINS() nie wyszukuje wewnątrz zagnieżdżonych tablic.
- Załóżmy na przykład, że bliźniacy mają
tags
właściwość o wartości[1, [2,3], 3, 4]
. Wyszukiwanie2
przy użyciu zapytaniaSELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2)
zwraca wartośćFalse
. Wyszukiwanie wartości w tablicy najwyższego poziomu, na przykład1
przy użyciu zapytaniaSELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1)
, zwraca wartośćTrue
.
- Załóżmy na przykład, że bliźniacy mają
- ARRAY_CONTAINS() nie jest obsługiwana, jeśli tablica zawiera obiekty.
- Załóżmy na przykład, że bliźniacy mają
tags
właściwość o wartości[Room1, Room2]
gdzieRoom1
iRoom2
są obiektami. Zapytania takie jak te nie są obsługiwane:SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2)
.
- Załóżmy na przykład, że bliźniacy mają
CONTAINS
Funkcja ciągu określająca, czy właściwość string reprezentacji bliźniaczej zawiera inną określoną wartość ciągu.
Składnia
CONTAINS(<string-to-check>,<contained-string>)
Argumenty
<string-to-check>
: właściwość bliźniaczej reprezentacji typu ciągu, którą chcesz sprawdzić pod kątem określonej wartości<contained-string>
: Ciąg reprezentujący wartość do sprawdzenia
Zwroty
Wartość logiczna wskazująca, czy pierwsze wyrażenie ciągu zawiera sekwencję znaków zdefiniowanych w drugim wyrażeniu ciągu.
Przykład
Poniższe zapytanie zwraca wszystkie cyfrowe reprezentacje bliźniacze, których identyfikatory zawierają -route
. Ciąg do sprawdzenia jest $dtId
każdą reprezentacją bliźniaczą w kolekcji, a zawarty ciąg to -route
.
SELECT *
FROM DIGITALTWINS T
WHERE CONTAINS(T.$dtId, '-route')
ENDSWITH
Funkcja ciągu określająca, czy właściwość string reprezentacji bliźniaczej kończy się w określonym innym ciągu.
Składnia
ENDSWITH(<string-to-check>,<ending-string>)
Argumenty
<string-to-check>
: właściwość bliźniaczej reprezentacji typu ciągu, którą chcesz sprawdzić na końcu<ending-string>
: ciąg reprezentujący zakończenie do sprawdzenia
Zwroty
Wartość logiczna wskazująca, czy pierwsze wyrażenie ciągu kończy się drugim.
Przykład
Poniższe zapytanie zwraca wszystkie cyfrowe reprezentacje bliźniacze, których identyfikatory kończą się na .-small
Ciąg do sprawdzenia jest $dtId
każdą reprezentacją bliźniaczą w kolekcji, a ciąg końcowy to -small
.
SELECT *
FROM DIGITALTWINS T
WHERE ENDSWITH(T.$dtId, '-small')
IS_BOOL
Funkcja sprawdzania typów do określania, czy właściwość ma wartość logiczną.
Ta funkcja jest często łączona z innymi predykatami, jeśli program przetwarza wyniki zapytania wymaga wartości logicznej i chcesz odfiltrować przypadki, w których właściwość nie jest wartością logiczną.
Składnia
IS_BOOL(<property>)
Argumenty
<property>
, właściwość do sprawdzenia, czy jest to wartość logiczna.
Zwroty
Wartość logiczna wskazująca, czy typ określonej właściwości jest wartością logiczną.
Przykład
Poniższe zapytanie wybiera cyfrowe reprezentacje bliźniacze, które mają właściwość logiczną HasTemperature
.
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature )
Poniższe zapytanie opiera się na powyższym przykładzie, aby wybrać cyfrowe reprezentacje bliźniacze, które mają właściwość logiczną HasTemperature
, a wartość tej właściwości nie false
jest .
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature ) AND HasTemperature != false
IS_DEFINED
Funkcja sprawdzania typów w celu określenia, czy właściwość jest zdefiniowana.
Składnia
IS_DEFINED(<property>)
Argumenty
<property>
, właściwość określająca, czy jest zdefiniowana.
Zwroty
Wartość logiczna wskazująca, czy właściwość została przypisana wartość.
Przykład
Poniższe zapytanie zwraca wszystkie cyfrowe reprezentacje bliźniacze, które mają zdefiniowaną Location
właściwość.
SELECT *
FROM DIGITALTWINS
WHERE IS_DEFINED(Location)
IS_NULL
Funkcja sprawdzania typów do określania, czy wartość właściwości to null
.
Składnia
IS_NULL(<property>)
Argumenty
<property>
, właściwość do sprawdzenia, czy ma wartość null.
Zwroty
Wartość logiczna wskazująca, czy typ określonej właściwości to null
.
Przykład
Poniższe zapytanie zwraca bliźniacze reprezentacje, które nie mają wartości null dla parametru Temperature. Aby uzyskać więcej informacji na temat operatora używanego NOT
w tym zapytaniu, zobacz Dokumentacja języka zapytań usługi Azure Digital Twins: Operatory.
SELECT *
FROM DIGITALTWINS T
WHERE NOT IS_NULL(T.Temperature)
IS_NUMBER
Funkcja sprawdzania typów do określania, czy właściwość ma wartość liczbową.
Ta funkcja jest często łączona z innymi predykatami, jeśli program przetwarzający wyniki zapytania wymaga wartości liczbowej i chcesz odfiltrować przypadki, w których właściwość nie jest liczbą.
Składnia
IS_NUMBER(<property>)
Argumenty
<property>
, właściwość do sprawdzenia, czy jest to liczba.
Zwroty
Wartość logiczna wskazująca, czy typ określonej właściwości jest liczbą.
Przykład
Poniższe zapytanie wybiera cyfrowe reprezentacje bliźniacze, które mają właściwość liczbową Capacity
, a jej wartość nie jest równa 0.
SELECT *
FROM DIGITALTWINS
WHERE IS_NUMBER( Capacity ) AND Capacity != 0
IS_OBJECT
Funkcja sprawdzania typów do określania, czy wartość właściwości jest typu obiektu JSON.
Ta funkcja jest często łączona z innymi predykatami, jeśli program przetwarzający wyniki zapytania wymaga obiektu JSON i chcesz odfiltrować przypadki, w których wartość nie jest obiektem JSON.
Składnia
IS_OBJECT<property>)
Argumenty
<property>
, właściwość do sprawdzenia, czy jest typu obiektu.
Zwroty
Wartość logiczna wskazująca, czy typ określonej właściwości jest obiektem JSON.
Przykład
Poniższe zapytanie wybiera wszystkie cyfrowe reprezentacje bliźniacze, w których jest to obiekt o nazwie MapObject
, i nie ma właściwości TemperatureReading
podrzędnej .
SELECT *
FROM DIGITALTWINS
WHERE IS_OBJECT( MapObject ) AND NOT IS_DEFINED ( MapObject.TemperatureReading )
IS_OF_MODEL
Sprawdzanie i funkcja sprawdzania typów w celu określenia, czy bliźniacze reprezentacje mają określony typ modelu. Obejmuje modele dziedziczone z określonego modelu.
Składnia
IS_OF_MODEL(<twin-collection>,'<model-ID>', exact)
Argumenty
Wymagana liczba rdzeni:
<model-ID>
: identyfikator modelu do sprawdzenia.
Opcjonalnie:
<twin-collection>
: określ kolekcję bliźniaczej reprezentacji, która ma być wyszukiwana, gdy istnieje więcej niż jedna (na przykład gdyJOIN
element jest używany).exact
: Wymagaj dokładnego dopasowania. Jeśli ten parametr nie jest ustawiony, zestaw wyników zawiera bliźniacze reprezentacje z modelami dziedziczynymi z określonego modelu.
Zwroty
Wartość logiczna wskazująca, czy określona reprezentacja bliźniacza jest zgodna z określonym typem modelu.
Przykład
Poniższe zapytanie zwraca bliźniacze reprezentacje z kolekcji DT, które są dokładnie typu dtmi:example:room;1
modelu .
SELECT ROOM FROM DIGITALTWINS DT WHERE IS_OF_MODEL(DT, 'dtmi:example:room;1', exact)
IS_PRIMITIVE
Funkcja sprawdzania typów do określania, czy wartość właściwości jest typu pierwotnego (ciąg, wartość logiczna, numeryczna lub null
).
Ta funkcja jest często łączona z innymi predykatami, jeśli program przetwarzający wyniki zapytania wymaga wartości typizowanej pierwotnej i chcesz odfiltrować przypadki, w których właściwość nie jest pierwotna.
Składnia
IS_PRIMITIVE(<property>)
Argumenty
<property>
, właściwość do sprawdzenia, czy jest typu pierwotnego.
Zwroty
Wartość logiczna wskazująca, czy typ określonej właściwości jest jednym z typów pierwotnych (ciąg, wartość logiczna, numeryczna lub null
).
Przykład
Poniższe zapytanie zwraca area
właściwość Factory o identyfikatorze "ABC", tylko wtedy, gdy area
właściwość jest typem pierwotnym. Aby uzyskać więcej informacji na temat wyświetlania niektórych kolumn w wynikach zapytania (takich jak to zapytanie z area
programem ), zobacz Azure Digital Twins query language reference: SELECT clause (Dokumentacja języka zapytań usługi Azure Digital Twins: klauzula SELECT).
SELECT Factory.area
FROM DIGITALTWINS Factory
WHERE Factory.$dtId = 'ABC'
AND IS_PRIMITIVE(Factory.area)
IS_STRING
Funkcja sprawdzania typów do określania, czy właściwość ma wartość ciągu.
Ta funkcja jest często łączona z innymi predykatami, jeśli program przetwarzający wyniki zapytania wymaga wartości ciągu i chcesz odfiltrować przypadki, w których właściwość nie jest ciągiem.
Składnia
IS_STRING(<property>)
Argumenty
<property>
, właściwość do sprawdzenia, czy jest to ciąg.
Zwroty
Wartość logiczna wskazująca, czy typ określonego wyrażenia jest ciągiem.
Przykład
Poniższe zapytanie wybiera cyfrowe reprezentacje bliźniacze, które mają właściwość Status
string, a jej wartość nie jest równa Completed
.
SELECT *
FROM DIGITIALTWINS
WHERE IS_STRING( Status ) AND Status != 'Completed'
STARTSWITH
Funkcja ciągu określająca, czy właściwość string bliźniaczej reprezentacji zaczyna się od określonego innego ciągu.
Składnia
STARTSWITH(<string-to-check>,<beginning-string>)
Argumenty
<string-to-check>
: właściwość bliźniaczej reprezentacji typu ciągu, którą chcesz sprawdzić na początku<beginning-string>
: Ciąg reprezentujący początek sprawdzania
Zwroty
Wartość logiczna wskazująca, czy pierwsze wyrażenie ciągu rozpoczyna się od drugiego.
Przykład
Poniższe zapytanie zwraca wszystkie cyfrowe reprezentacje bliźniacze, których identyfikatory zaczynają się od area1-
. Ciąg do sprawdzenia jest $dtId
każdą reprezentacją bliźniaczą w kolekcji, a ciąg początkowy to area1-
.
SELECT *
FROM DIGITALTWINS T
WHERE STARTSWITH(T.$dtId, 'area1-')