等しいおよび等しくないのQBE演算子

QBE演算子_eqおよび_neを使用して、簡単な例でカー・レース・データセットから特定のデータをフィルタリングする方法について説明します。

特定のチームの詳細をフェッチするシナリオについて考えてみます。_eq QBE演算子比較を使用すると、検索する特定のチームの名前と名前が等しいかどうかをチェックし、そのチームの詳細をフェッチできます。

例3-3 _eq演算子

SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
    team (
        check: {
            name: {_eq: "Ferrari"}
        }
    ) {
        id: team_id
        name
        points
    }
');

このコードは、team表にアクセスし、「Ferrari」という名前のチームのみのidnameおよびpointsをフェッチします。

DATA                                                                           
--------------------------------------------------------------------------------
{                                                                              
  "id" : 302,                                                                  
  "name" : "Ferrari",                                                          
  "points" : 652                                                               
}                                                                              
                                                                                 
 
1 row selected.
簡略化された構文を使用することもできます。この構文では、name: {_eq: "Ferrari"}ではなくname: "Ferrari"を使用するだけで、同じ出力が生成されます:
SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
    team (
        check: {
            name: "Ferrari"
        }
    ) {
        id: team_id
        name
        points
    }
');

または、「McLaren Mercedes」という名前のチームの詳細をフェッチすることもできます。さらに、チーム内の「Oscar Piastri」以外のドライバを見つけます。

例3-4 _ne演算子

SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
    team (
        check: {
            name: "McLaren Mercedes"
        }
    ){
        id: team_id
        name
        points
        drivers: driver (
            check: {
                name: {_ne: "Oscar Piastri"}
            }
        ) {
            name
            points
        }
    }
');

この例では、2つのフィルタを使用しています。1つ目はチームの名前に基づいてチームをフィルタリングし、2つ目は「Oscar Piastri」と等しくないドライバ名を特定します:

DATA                                                                           
--------------------------------------------------------------------------------
{                                                                              
  "id" : 301,                                                                  
  "name" : "McLaren Mercedes",                                                 
  "points" : 666,                                                              
  "drivers" :                                                                  
  [                                                                            
    {                                                                          
      "name" : "Lando Norris",                                                 
      "points" : 282                                                           
    }                                                                          
  ]                                                                            
}                                                                              
                                                                                 
 
1 row selected.