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_numbertablicy , 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'
  • 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)
  • 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 ma lift 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").
  • 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]. Wyszukiwanie 2 przy użyciu zapytania SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2) zwraca wartość False. Wyszukiwanie wartości w tablicy najwyższego poziomu, na przykład 1 przy użyciu zapytania SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1), zwraca wartość True.
  • 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] gdzie Room1 i Room2 są obiektami. Zapytania takie jak te nie są obsługiwane: SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2).

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 falsejest .

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 TemperatureReadingpodrzę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 gdy JOIN 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;1modelu .

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 areaprogramem ), 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-')