--- title: "ZCQL V2の構文と例外" url: https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/syntax-exceptions/ description: "ZCQLは、使い慣れたクエリ言語をモデルにしたCatalyst独自のクエリ言語であり、アプリのデータベースを効率的にクエリするために使用できます。" last_updated: 2026-02-23T12:39:41Z service: Cloud Scale type: general --- # ZCQL V2の構文と例外 Catalystは、ZCQLクエリをより効果的に記述するための構文のアップグレードと機能強化をいくつか追加しました。これらの新しい構文アップグレードは、追加の機能を提供し、Data Storeでのデータ関連操作をより簡単に実行できるようにします。 > **注意:** * これらの機能強化を使用するには、**V2**バージョンに移行する必要があります。構文のアップグレードは、**V1**でZCQLコマンドを実行しながら実装しても適用されません。 * **2024年12月1日**より、すべての[Org](https://docs.catalyst.zoho.com/ja/getting-started/catalyst-organizations/)の[開発環境](https://docs.catalyst.zoho.com/ja/deployment-and-billing/environments/development-environment/)にある現在のすべてのプロジェクトは、自動的に**ZCQL V2 Parser**にマッピングされます。 * **2025年4月1日**より、*開発環境*で**ZCQL V2 Parser**にすでにマッピングされているすべての*Org*のすべてのプロジェクトは、プロジェクトの本番環境が有効化された場合、[本番環境](https://docs.catalyst.zoho.com/ja/deployment-and-billing/environments/production-environment/)で自動的に**ZCQL V2 Parser**にマッピングされます。 ZCQLクエリを実行する際には、以下の例外と構文の注意点に留意する必要があります: 1. [`AVG ()`](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/zcql-functions/#avg) ZCQL関数は以下のデータ型に適用できます: - **Date** - **DateTime** - **Boolean** 2. ZCQL文で値を指定する場合は、値をシングルクォーテーションで囲んで指定してください。 たとえば、従業員データベースから特定の名前を取得する場合、以下のようにコマンドを記述します: ```sql SELECT Name FROM Employee_DB WHERE name = 'Amelia' ``` 3. カラムがBooleanデータ型の場合: - 文字列値は許可されません。 - Booleanデータ型は以下の値のみをサポートします: - FALSE - TRUE - NULL 4. **Encryptedデータ型**を使用している場合、そのカラムには以下のZCQL関数を使用できません: - `AVG()` - `SUM()` - `MAX()` - `MIN()` 5. `Less Than`、`Greater Than`、`Less Than or Equal`、`Greater Than or Equal`などの比較演算子を**Encrypted Text**および**Boolean**データ型で使用する場合、[適切な例外](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/syntax-exceptions/#list-of-zcql-exceptions)が追加されています。これらの例外は`Equal`および`Not Equal`演算子には適用されません。 6. `WHERE`句文でサブクエリがサポートされるようになりました。詳細については、この[ヘルプドキュメント](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/where/#subqueries-in-where-clause)をご参照ください。 7. [`ORDER BY`](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/groupby-orderby/#order-by-statement)句で[ZCQL関数](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/zcql-functions/)の使用がサポートされるようになりました。 8. `ORDER BY`句を使用するすべてのカラムで、`ASC`と`DESC`の機能を適用できるようになりました。個別のカラムに対しても`ASC`と`DESC`を適用できます。 **サンプルデータベース**: 以下のデータベースを考えてみましょう - **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
テーブルをリストするには以下のコマンドを実行します ```sql 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
9. 以下のケースでは[適切な例外](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/syntax-exceptions/#list-of-zcql-exceptions)がトリガーされます: - **Integer**データ型で許可される最大/最小値を超えた場合。 - **VarChar**データ型で文字長が設定した値より長い場合。 - **BIGINT**データ型でサポート範囲を超える値の場合。 10. 1つのZCQL文に**4つ**の[`JOIN`](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/joins/)句を記述できます。ただし、各JOIN句に対して**1つ**の`JOIN`条件のみ記述できます。 11. 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
テーブルをリストするには以下のコマンドを実行します ```sql 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`文でのみサポートされています。 12. **IS/IS NOT**演算子を使用してNULL値があるかどうかを確認できます。**IS/IS NOT**演算子のサポートはNULL値に対してのみ利用可能です。 13. [`GROUP BY`](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/groupby-orderby/)と[`Binaryof()`](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/groupby-orderby/#binaryof-function)文を記述する際は、以下のZCQLルールに留意する必要があります: - Binaryof()機能はGROUP BY文でのみ使用できます。 - Binaryof()はVarCharまたはTextデータ型のカラムにのみ使用できます。 - Binaryof()がGROUP BY文で使用される場合、返される値は大文字と小文字が区別されます。たとえば、Zylker_EMPというテーブルのNameというカラムに'AMELIA'、'amelia'、'Burrows'、'burrows'の値があるとします。以下のコマンドを使用した場合: ```sql Select Name from Zylker_EMP group by binaryof(Name) ``` 結果は以下のいずれかになる可能性があります: - AMELIA - amelia - burrows - Burrows 14. カラム名に数値を含めることができるようになりました。クエリ内でそのようなカラム名をバッククォート(**`**)記号を使用して指定できます。 たとえば、Numbersというテーブルの01というカラムに対する`SELECT`クエリは以下のように記述できます: ```sql 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関数](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/zcql-functions/)は**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'` カラム`Fishes`は**VarChar**として作成され、**MaxLength**は`5`に設定されています。この文では、`'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`'