다음을 통해 공유


Azure Digital Twins 쿼리 언어 참조: SELECT 절

이 문서에는 Azure Digital Twins 쿼리 언어SELECT 절에 대한 참조 정보가 포함되어 있습니다.

SELECT 절은 쿼리의 첫 번째 부분입니다. 쿼리에서 반환할 열 목록을 지정합니다.

모든 쿼리에 이 절이 필요합니다.

SELECT *

결과 집합의 * 속성에 할당하지 않고 select 문의 문자를 사용하여 디지털 트윈 문서를 있는 그대로 프로젝션합니다.

참고 항목

SELECT * 는 쿼리에서 .를 사용하지 않는 경우에만 유효한 구문입니다 JOIN. 사용 JOIN쿼리에 대한 자세한 내용은 Azure Digital Twins 쿼리 언어 참조: JOIN 절을 참조하세요.

구문

SELECT *
--FROM ...

반품

쿼리에서 반환되는 속성 집합입니다.

예시

다음 쿼리는 인스턴스의 모든 디지털 트윈을 반환합니다.

SELECT *
FROM DIGITALTWINS

프로젝션이 있는 SELECT 열

SELECT 절의 프로젝션을 사용하여 쿼리가 반환할 열을 선택할 수 있습니다. 트윈 및 관계의 명명된 컬렉션 또는 트윈 및 관계의 속성을 지정할 수 있습니다.

이제 기본 속성과 복합 속성 모두에 프로젝션이 지원됩니다.

구문

컬렉션을 프로젝트하려면:

SELECT <twin-or-relationship-collection>

속성을 프로젝트하려면:

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

반품

프로젝션에 지정된 트윈, 속성 또는 관계의 컬렉션입니다.

프로젝션에 포함된 속성이 특정 데이터 행에 대해 없는 경우 속성도 마찬가지로 결과 집합에 존재하지 않습니다. 이 동작 의 예는 Project 속성 예제: 데이터 행에 대한 속성이 없는 경우를 참조하세요.

예제

예제 시나리오

다음 예제에서는 다음 데이터 요소를 포함하는 트윈 그래프를 살펴보겠습니다.

  • FactoryA라는 팩터리 쌍
    • 값이 FactoryAname이라는 속성을 포함합니다.
  • Contoso라는 소비자 쌍
    • 값이 Contosoname이라는 속성을 포함합니다.
  • FactoryA에서 Contoso로의 consumerRelationship 관계입니다. FactoryA-consumerRelationship-Contoso
    • 값이 JeffmanagedBy이라는 속성을 포함합니다.

이 시나리오를 보여 주는 다이어그램은 다음과 같습니다.

위에서 설명한 샘플 그래프를 보여 주는 다이어그램

프로젝트 컬렉션 예제

다음은 이 그래프에서 컬렉션을 프로젝트하는 예제 쿼리입니다. 다음 쿼리는 전체 트윈 컬렉션의 이름을 지정하고 반환할 컬렉션 T 으로 프로젝션하여 인스턴스의 모든 디지털 트윈을 T 반환합니다.

SELECT T
FROM DIGITALTWINS T

이 쿼리에서 반환되는 JSON 페이로드는 다음과 같습니다.

{
  "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을 사용하여 프로젝트 예제

프로젝션은 일반적으로 에 지정된 컬렉션을 반환하는 JOIN데 사용됩니다. 다음 쿼리는 프로젝션을 사용하여 소비자, 팩터리 및 관계의 데이터를 반환합니다. 예제에서 JOIN 사용되는 구문에 대한 자세한 내용은 Azure Digital Twins 쿼리 언어 참조: JOIN 절을 참조하세요.

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

이 쿼리에서 반환되는 JSON 페이로드는 다음과 같습니다.

{
  "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"
}

프로젝트 속성 예제

다음은 속성을 프로젝스하는 예제입니다. 다음 쿼리는 프로젝션을 사용하여 소비자 트윈의 name 속성과 관계의 managedBy 속성을 반환합니다.

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

이 쿼리에서 반환되는 JSON 페이로드는 다음과 같습니다.

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

프로젝트 속성 예제: 데이터 행에 대한 속성이 없습니다.

프로젝션에 포함된 속성이 특정 데이터 행에 대해 없는 경우 속성도 마찬가지로 결과 집합에 존재하지 않습니다.

이 예제에서는 사람을 나타내는 트윈 집합을 고려합니다. 일부 트윈에는 연결된 나이가 있지만 다른 트윈은 그렇지 않습니다.

다음은 속성과 age 속성을 프로젝스하는 쿼리입니다name.

SELECT name, age 
FROM DIGITALTWINS

결과는 트윈에 이 속성이 age 없는 결과에서 일부 트윈에서 누락된 속성과 함께 다음과 같이 보일 수 있습니다.

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

SELECT COUNT

이 메서드를 사용하여 결과 집합의 항목 수를 계산하고 해당 번호를 반환합니다.

구문

SELECT COUNT()

인수

없음

반품

int 값입니다.

예시

다음 쿼리는 인스턴스에 있는 모든 디지털 트윈의 개수를 반환합니다.

SELECT COUNT()
FROM DIGITALTWINS

다음 쿼리는 인스턴스의 모든 관계 수를 반환합니다.

SELECT COUNT()
FROM RELATIONSHIPS

SELECT TOP

쿼리 요구 사항을 충족하는 상위 항목 중 일부만 반환하려면 이 메서드를 사용합니다.

구문

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

인수

int 선택할 상위 항목 수를 지정하는 값입니다.

반품

트윈의 컬렉션입니다.

예시

다음 쿼리는 인스턴스의 처음 5개의 디지털 트윈만 반환합니다.

SELECT TOP(5)
FROM DIGITALTWINS