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

Bu belge, Azure Digital Twins sorgu dilinin SELECT yan tümcesindebaş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ÇMEK*

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

Sözdizimi

SELECT *
--FROM ...

Döndürülenler

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

Örnek

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

SELECT *
FROM DIGITALTWINS

Projeksiyonlu SELECT sütunları

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

Sözdizimi

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 . Project özellik ö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ı düşünün:

  • 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 projelerini oluşturan örnek bir sorgu verilmiştir. Aşağıdaki sorgu, ikiz koleksiyonunun tamamını adlandırarak ve döndürülecek 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 İlişki verilerini döndürmek için projeksiyonu 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 özelliğini ve ilişkinin özelliğini döndürmek namemanagedBy 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ı ile ilişkili 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

ÜSTTEN 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