

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# クエリと Cryptographic Computing for Clean Rooms
<a name="crypto-computing-queries"></a>

このトピックでは、Cryptographic Computing for Clean Rooms で暗号化されたデータテーブルを使用するクエリの作成について情報を提供します。

**Topics**
+ [NULL で分岐するクエリ](#queries-branch-on-null)
+ [1 つのソース列を複数のターゲット列にマッピングする](#queries-mapping)
+ [JOIN クエリと SELECT クエリの両方に同じデータを使用する](#queries-using-same-data)

## NULL で分岐するクエリ
<a name="queries-branch-on-null"></a>

NULL ステートメントでクエリを分岐するということは、`IF x IS NULL THEN 0 ELSE 1` のような構文を使用することを意味します。

cleartext列では、NULL ステートメントで常にクエリを分岐させることができます。

sealed列やfingerprint列の場合は、**[NULL 値を保存]** パラメータ (`preserveNulls`) の値が `true` に設定されている場合のみ、NULL ステートメントでクエリを分岐させることができます。

これらの制約に違反するクエリは、誤った結果をもたらす可能性があります。

## 1 つのソース列を複数のターゲット列にマッピングする
<a name="queries-mapping"></a>

1 つのソース列を複数のターゲット列にマッピングできます。例えば、1 つの列で JOIN と SELECT の両方を実行することができます。

詳細については、「[JOIN クエリと SELECT クエリの両方に同じデータを使用する](#queries-using-same-data)」を参照してください。

## JOIN クエリと SELECT クエリの両方に同じデータを使用する
<a name="queries-using-same-data"></a>

列内のデータが機密情報ではない場合、そのデータはcleartextのターゲット列に表示され、あらゆる目的に使用できます。

列内のデータが機密情報で、JOIN クエリと SELECT クエリの両方に使用する必要がある場合は、そのソース列を出力ファイルの 2 つのターゲット列にマッピングします。1 つの列は `type` をfingerprint列として暗号化し、もう 1 つの列は `type` をシール列として暗号化します。C3R 暗号化クライアントのインタラクティブなスキーマ生成では、ヘッダーサフィックスとして `_fingerprint` と `_sealed` が提示されます。これらのヘッダーサフィックスは、このような列をすばやく区別するのに便利な規則です。