Azure Digital Twins sorgu dili başvurusu: SELECT yan tümcesi

Bu belge, Azure Digital Twins sorgu dili için SELECT yan tümcesinde başvuru bilgilerini içerir.

SELECT yan tümcesi sorgunun ilk bölümüdür. Sorgunun döndüreceği sütunların listesini belirtir.

Bu yan tümce tüm sorgular için gereklidir.

SEÇİN*

* Sonuç kümesindeki bir özelliğe atamadan dijital ikiz belgesini olduğu gibi yansıtmak için select deyimindeki karakteri kullanın.

Not

SELECT * yalnızca sorgu bir kullanmadığında geçerli bir JOINsöz dizimidir. kullanan JOINsorgular hakkında daha fazla bilgi için bkz. Azure Digital Twins sorgu dili başvurusu: JOIN yan tümcesi.

Syntax

SELECT *
--FROM ...

Döndürülenler

Sorgudan döndürülen özellikler kümesi.

Örnek

Aşağıdaki sorgu örnekteki tüm dijital ikizleri döndürür.

SELECT *
FROM DIGITALTWINS

Projeksiyonları olan SELECT sütunları

Sorgunun hangi sütunları döndüreceğini seçmek için SELECT yan tümcesindeki projeksiyonları kullanabilirsiniz. Adlandırılmış ikiz ve ilişki koleksiyonlarını ya da ikizlerin ve ilişkilerin özelliklerini belirtebilirsiniz.

Projeksiyon artık hem ilkel özellikler hem de karmaşık özellikler için desteklenmektedir.

Syntax

Bir koleksiyonu yansıtmak için:

SELECT <twin-or-relationship-collection>

Bir özelliği yansıtmak için:

SELECT <twin-or-relationship-collection>.<property-name>

Döndürülenler

projeksiyonda belirtilen ikiz, özellik veya ilişki koleksiyonu.

Projeksiyona dahil edilen bir özellik belirli bir veri satırı için mevcut değilse, özellik benzer şekilde sonuç kümesinde mevcut olmaz. Bu davranış örneği için bkz . Proje özelliği örneği: Veri satırı için özellik yok.

Örnekler

Örnek senaryo

Aşağıdaki örnekler için aşağıdaki veri öğelerini içeren bir ikiz grafını göz önünde bulundurun:

  • FactoryA adlı bir Fabrika ikizi
    • değeriyle adlı name bir özellik içerir FactoryA
  • Contoso adlı bir Tüketici ikizi
    • değeriyle adlı name bir özellik içerir Contoso
  • FactoryA'dan Contoso'ya consumerRelationship ilişkisi( adlı) FactoryA-consumerRelationship-Contoso
    • değeriyle adlı managedBy bir özellik içerir Jeff

Bu senaryoya ilişkin bir diyagram aşağıda gösterilmiştir:

Yukarıda açıklanan örnek grafiği gösteren diyagram.

Proje koleksiyonu örneği

Aşağıda, bu grafikten bir koleksiyonun projelendiğini gösteren örnek bir sorgu verilmiştir. Aşağıdaki sorgu, ikiz koleksiyonunun tamamını adlandırarak ve döndürecek koleksiyon T olarak yansıtarak T örnekteki tüm dijital ikizleri döndürür.

SELECT T
FROM DIGITALTWINS T

Bu sorgudan döndürülen JSON yükü aşağıdadır:

{
  "value": [
    {
      "result": [
        {
          "T": {
            "$dtId": "FactoryA",
            "$etag": "W/\"d22267a0-fd4f-4f6b-916d-4946a30453c9\"",
            "$metadata": {
              "$model": "dtmi:contosocom:DigitalTwins:Factory;1",
              "name": {
                "lastUpdateTime": "2021-04-19T17:15:54.4977151Z"
              }
            },
            "name": "FactoryA"
          }
        },
        {
          "T": {
            "$dtId": "Contoso",
            "$etag": "W/\"a96dc85e-56ae-4061-866b-058a149e03d8\"",
            "$metadata": {
              "$model": "dtmi:com:contoso:Consumer;1",
              "name": {
                "lastUpdateTime": "2021-04-19T17:16:30.2154166Z"
              }
            },
            "name": "Contoso"
          }
        }
      ]
    }
  ],
  "continuationToken": "null"
}

JOIN ile proje örneği

Projeksiyon genellikle içinde belirtilen bir koleksiyonu döndürmek JOINiçin kullanılır. Aşağıdaki sorgu tüketici, fabrika ve ilişki verilerini döndürmek için projeksiyon kullanır. Örnekte kullanılan söz dizimi hakkında daha fazla bilgi JOIN için bkz. Azure Digital Twins sorgu dili başvurusu: JOIN yan tümcesi.

SELECT Consumer, Factory, Relationship
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'

Bu sorgudan döndürülen JSON yükü aşağıdadır:

{
  "value": [
    {
      "result": [
        {
          "Consumer": {
            "$dtId": "Contoso",
            "$etag": "W/\"a96dc85e-56ae-4061-866b-058a149e03d8\"",
            "$metadata": {
              "$model": "dtmi:com:contoso:Consumer;1",
              "name": {
                "lastUpdateTime": "2021-04-19T17:16:30.2154166Z"
              }
            },
            "name": "Contoso"
          },
          "Factory": {
            "$dtId": "FactoryA",
            "$etag": "W/\"d22267a0-fd4f-4f6b-916d-4946a30453c9\"",
            "$metadata": {
              "$model": "dtmi:contosocom:DigitalTwins:Factory;1",
              "name": {
                "lastUpdateTime": "2021-04-19T17:15:54.4977151Z"
              }
            },
            "name": "FactoryA"
          },
          "Relationship": {
            "$etag": "W/\"f01e07c1-19e4-4bbe-a12d-f5761e86d3e8\"",
            "$relationshipId": "FactoryA-consumerRelationship-Contoso",
            "$relationshipName": "consumerRelationship",
            "$sourceId": "FactoryA",
            "$targetId": "Contoso",
            "managedBy": "Jeff"
          }
        }
      ]
    }
  ],
  "continuationToken": "null"
}

Proje özelliği örneği

Aşağıda bir özelliğin projelendiğini gösteren bir örnek verilmiştir. Aşağıdaki sorgu, Consumer ikizinin name özelliğini ve ilişkinin özelliğini döndürmek managedBy için projeksiyonu kullanır.

SELECT Consumer.name, Relationship.managedBy
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'

Bu sorgudan döndürülen JSON yükü aşağıdadır:

{
  "value": [
    {
      "result": [
        {
          "managedBy": "Jeff",
          "name": "Contoso"
        }
      ]
    }
  ],
  "continuationToken": "null"
}

Proje özelliği örneği: Veri satırı için özellik yok

Projeksiyona dahil edilen bir özellik belirli bir veri satırı için mevcut değilse, özellik benzer şekilde sonuç kümesinde mevcut olmaz.

Bu örnekte kişileri temsil eden bir ikiz kümesi düşünün. bazı ikizlerin yaşları onlarla ilişkilidir, ancak bazıları değildir.

ve özelliklerini projeleyen bir sorgu aşağıdadır nameage :

SELECT name, age 
FROM DIGITALTWINS

Sonuç şuna benzer görünebilir ve age ikizlerin bu özelliğe sahip olmadığı sonuçta bazı ikizlerde özelliği eksik olabilir.

{
  "value": [
    {
      "result": [
        {
          "name": "John",
          "age": 27
        },
        {
          "name": "Keanu"
        }
      ]
    }
  ],
  "continuationToken": "null"
}

SAYI SEÇ

Sonuç kümesindeki öğe sayısını saymak ve bu sayıyı döndürmek için bu yöntemi kullanın.

Söz dizimi

SELECT COUNT()

Bağımsız değişkenler

Yok.

Döndürülenler

Bir int değer.

Örnek

Aşağıdaki sorgu, örnekteki tüm dijital ikizlerin sayısını döndürür.

SELECT COUNT()
FROM DIGITALTWINS

Aşağıdaki sorgu, örnekteki tüm ilişkilerin sayısını döndürür.

SELECT COUNT()
FROM RELATIONSHIPS

ÜST SEÇ

Sorgu gereksinimlerini karşılayan en önemli öğelerden yalnızca bazılarını döndürmek için bu yöntemi kullanın.

Söz dizimi

SELECT TOP(<number-of-return-items>)

Bağımsız değişkenler

int Seçecek en çok kullanılan öğe sayısını belirten değer.

Döndürülenler

İkizlerden oluşan bir koleksiyon.

Örnek

Aşağıdaki sorgu, örnekte yalnızca ilk beş dijital ikizi döndürür.

SELECT TOP(5)
FROM DIGITALTWINS