お知らせ:

当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

ZCQL V2の構文と例外

Catalystは、ZCQLクエリをより効果的に記述するための構文のアップグレードと機能強化をいくつか追加しました。これらの新しい構文アップグレードは、追加の機能を提供し、Data Storeでのデータ関連操作をより簡単に実行できるようにします。

注意:
  • これらの機能強化を使用するには、V2バージョンに移行する必要があります。構文のアップグレードは、V1でZCQLコマンドを実行しながら実装しても適用されません。

  • 2024年12月1日より、すべてのOrg開発環境にある現在のすべてのプロジェクトは、自動的にZCQL V2 Parserにマッピングされます。

  • 2025年4月1日より、開発環境ZCQL V2 ParserにすでにマッピングされているすべてのOrgのすべてのプロジェクトは、プロジェクトの本番環境が有効化された場合、本番環境で自動的にZCQL V2 Parserにマッピングされます。

ZCQLクエリを実行する際には、以下の例外と構文の注意点に留意する必要があります:

  1. AVG () ZCQL関数は以下のデータ型に適用できます:

    • Date
    • DateTime
    • Boolean
  2. ZCQL文で値を指定する場合は、値をシングルクォーテーションで囲んで指定してください。
    たとえば、従業員データベースから特定の名前を取得する場合、以下のようにコマンドを記述します:

copy
SELECT Name FROM Employee_DB WHERE name = 'Amelia'
  1. カラムがBooleanデータ型の場合:

    • 文字列値は許可されません。
    • Booleanデータ型は以下の値のみをサポートします:
      • FALSE
      • TRUE
      • NULL
  2. Encryptedデータ型を使用している場合、そのカラムには以下のZCQL関数を使用できません:

    • AVG()
    • SUM()
    • MAX()
    • MIN()
  3. Less ThanGreater ThanLess Than or EqualGreater Than or Equalなどの比較演算子をEncrypted TextおよびBooleanデータ型で使用する場合、適切な例外が追加されています。これらの例外はEqualおよびNot Equal演算子には適用されません。

  4. WHERE句文でサブクエリがサポートされるようになりました。詳細については、このヘルプドキュメントをご参照ください。

  5. ORDER BY句でZCQL関数の使用がサポートされるようになりました。

  6. ORDER BY句を使用するすべてのカラムで、ASCDESCの機能を適用できるようになりました。個別のカラムに対してもASCDESCを適用できます。

サンプルデータベース
以下のデータベースを考えてみましょう - ZylkerEmployeeCompensation

Name Salary Reimbursement
Michelle Mascarenhas 90000 10000
Bruce Kyle 3000000 45000
Clark Kane 3300 1500
Judith Bridges 4700 300
Devon Dreymond 80000 2300
Ashley Kim 6000 200

テーブルをリストするには以下のコマンドを実行します

copy
SELECT Salary, Reimbursement FROM ZylkerEmployeeCompensation ORDER BY Salary ASC, Reimbursement DESC

出力:

ZylkerEmployeeCompensation.Salary ZylkerEmployeeCompensation.Reimbursement
3300 45000
4700 10000
6000 2300
80000 1500
90000 300
3000000 200
  1. 以下のケースでは適切な例外がトリガーされます:

    • Integerデータ型で許可される最大/最小値を超えた場合。
    • VarCharデータ型で文字長が設定した値より長い場合。
    • BIGINTデータ型でサポート範囲を超える値の場合。
  2. 1つのZCQL文に4つJOIN句を記述できます。ただし、各JOIN句に対して1つJOIN条件のみ記述できます。

  3. ZCQLでテーブルエイリアス機能がサポートされるようになりました。AS ZCQLコマンドを使用してZCQLでエイリアス機能を呼び出すことができます。このコマンドを使用すると、テーブルを別の名前で参照できます。

サンプルデータベース
以下のデータベースを考えてみましょう:

テーブル1: ZylkerEmployeeCompensation

Name Salary Reimbursement
Michelle Mascarenhas 90000 10000
Bruce Kyle 3000000 45000
Clark Kane 3300 1500
Judith Bridges 4700 300
Devon Dreymond 80000 2300
Ashley Kim 6000 200

テーブル2: ZylkerEmployeeRelation

Manager Member
Michelle Mascarenhas Bruce Kyle
Michelle Mascarenhas Clark Kane
Judith Bridges Michelle Mascarenhas

テーブルをリストするには以下のコマンドを実行します

copy
SELECT Managers.Name, Members.Name FROM ZylkerEmployeeCompensation AS Managers
INNER JOIN ZylkerEmployeeRelation AS asso ON Managers.ROWID = asso.Manager
INNER JOIN ZylkerEmployeeCompensation AS Members ON Members.ROWID = asso.Member

出力:

Manager.Name Member.Name
Michelle Mascarenhas Bruce Kyle
Michelle Mascarenhas Clark Kane
Judith Bridges Michelle Mascarenhas
注意: テーブルエイリアス操作はSELECT文でのみサポートされています。
  1. IS/IS NOT演算子を使用してNULL値があるかどうかを確認できます。IS/IS NOT演算子のサポートはNULL値に対してのみ利用可能です。

  2. GROUP BYBinaryof()文を記述する際は、以下のZCQLルールに留意する必要があります:

    • Binaryof()機能はGROUP BY文でのみ使用できます。
    • Binaryof()はVarCharまたはTextデータ型のカラムにのみ使用できます。
    • Binaryof()がGROUP BY文で使用される場合、返される値は大文字と小文字が区別されます。たとえば、Zylker_EMPというテーブルのNameというカラムに’AMELIA’、‘amelia’、‘Burrows’、‘burrows’の値があるとします。以下のコマンドを使用した場合:
copy
Select Name from Zylker_EMP group by binaryof(Name)

結果は以下のいずれかになる可能性があります:

  • AMELIA
  • amelia
  • burrows
  • Burrows
  1. カラム名に数値を含めることができるようになりました。クエリ内でそのようなカラム名をバッククォート(`)記号を使用して指定できます。

たとえば、Numbersというテーブルの01というカラムに対するSELECTクエリは以下のように記述できます:

copy
SELECT `01` FROM Numbers

ZCQL例外一覧

以下は、一般的な例外とこれらの例外をトリガーする可能性のあるクエリ文の例のリストです。リストを確認し、ZCQL構文を厳密に遵守してこれらの例外のトリガーを回避してください。

データ型 ケース サンプルZCQLクエリ トリガーされる例外
Encrypted Text 特定の演算子がサポートされていない SELECT * FROM temp WHERE enc > 'temsp' Operator > is not supported for
ENCRYPTED TEXT

ZCQL文で**<<=>=**の演算子を使用した場合も同じ例外が適用されますが、例外メッセージはそれに応じて変更されます

LIKEがサポートされていない SELECT * FROM temp WHERE enc LIKE '*temsp' Operator LIKE is not supported for
ENCRYPTED TEXT

ZCQL文でNOT LIKEを使用した場合も同じ例外が適用されますが、例外メッセージはそれに応じて変更されます

BETWEENがサポートされていない SELECT * FROM temp WHERE enc BETWEEN 'one' AND 'ten' Operator BETWEEN is not supported for
ENCRYPTED TEXT

ZCQL文でNOT BETWEENを使用した場合も同じ例外が適用されますが、例外メッセージはそれに応じて変更されます

INがサポートされていない SELECT * FROM temp WHERE enc IN ('one','three') Operator IN is not supported for
ENCRYPTED TEXT

クエリでNOT INを使用した場合も同じ例外が適用されますが、例外メッセージはそれに応じて変更されます

ZCQL関数がサポートされていない SELECT AVG(enc) FROM temp AVG() function is not supported for
ENCRYPTED_TEXT

ZCQL関数Encrypted Textではサポートされていません。

Boolean 特定の演算子がサポートされていない SELECT * FROM temp WHERE bools > FALSE Operator > is not supported for BOOLEAN

ZCQL文で**<<=>=**の演算子を使用した場合も同じ例外が適用されますが、例外メッセージはそれに応じて変更されます

LIKEがサポートされていない SELECT * FROM temp WHERE bools LIKE FALSE Operator LIKE is not supported for BOOLEAN

クエリでNOT LIKEを使用した場合も同じ例外が適用されますが、例外メッセージはそれに応じて変更されます

BETWEENがサポートされていない SELECT * FROM temp WHERE bools BETWEEN TRUE and FALSE Operator BETWEEN is not supported for
BOOLEAN

クエリでNOT BETWEENを使用した場合も同じ例外が適用されますが、例外メッセージはそれに応じて変更されます

INがサポートされていない SELECT * FROM temp WHERE bools IN (TRUE, FALSE) Operator IN is not supported for BOOLEAN

クエリでNOT INを使用した場合も同じ例外が適用されますが、例外メッセージはそれに応じて変更されます

VarChar 最大長を超過 INSERT INTO temp (Fishes) value (‘salmon’) ‘salmon’ data too long for column ‘Fishes’

カラムFishesVarCharとして作成され、MaxLength5に設定されています。この文では、‘Salmon’MaxLengthを超えています

Integer 最大値を超過 INSERT INTO temp (numbers) VALUE (546895326908) For column ‘ints’ INT value should be between
-9999999999 and 9999999999

カラムnumbersはINTとして作成されています。INTデータ型の値は-9999999999から9999999999の間である必要があります

Big Integer 最大値を超過 INSERT INTO temp (numbers) VALUE (92343432412351
435123453245)
Given numeric value 92343432412351
435123453 is too large

カラムnumbersはBIGINTとして作成されています。BIGINTデータ型の値は-9223372036854775808から9223372036854775807の間である必要があります

Text 値がシングルクォーテーションで囲まれていない SELECT * FROM temp WHERE name = one Unknown Table temp or Unknown Column
one in WHERE

oneがクォーテーションで囲まれていない場合、カラムとして認識されます-’one

最終更新日 2026-02-23 18:09:41 +0530 IST

このページについて