選択リスト(複数)とは
Salesforceのオブジェクト項目に選択リスト(複数)というデータ型があります。
タグのように複数の属性をセットする場面で利用できる便利なデータ型です。
標準SQLや通常のDBMSの実装には無さそうな INCLUDES句が便利だったのでメモします。
利用ケース
たとえば下記のような利用ケースが考えられます。
取引先責任者の項目として 「関心のある業種」を設定
選択肢として、{メーカー, 商社, 金融, 小売, サービス}を設定
データとしては下記のようになります。
Name | Tag__c |
---|---|
鈴木太郎 | メーカー;商社 |
田中二郎 | 商社;小売 |
高橋花子 | 金融;小売;サービス |
木村愛子 | 金融;商社 |
利用ケースとINCLUDES句使用例
この情報を利用するケースとしては、「"小売"に関心のある人全員を抽出する」等が考えられます。
SOQLでは INCLUDES句を利用し、下記のように記述することで実現できます。
"小売"タグが設定されているデータを抽出
SELECT Name, Tag__c FROM Contact
WHERE Tag__c INCLUDES ('小売')
結果
Name | Tag__c |
---|---|
田中二郎 | 商社;小売 |
高橋花子 | 金融;小売;サービス |
複数条件(or)
IN句のように複数条件を記述できます。
"小売"または"メーカー"いずれかのタグが設定されているデータを抽出
SELECT Name, Tag__c FROM Contact
WHERE Tag__c INCLUDES ('小売', 'メーカー')
結果
Name | Tag__c |
---|---|
鈴木太郎 | メーカー;商社 |
田中二郎 | 商社;小売 |
高橋花子 | 金融;小売;サービス |
複数属性を持つデータを抽出
複数の属性を持つデータを抽出する場合、セミコロンで指定します。
"商社"と"金融"両方のタグが設定されているデータを抽出
SELECT Name, Tag__c FROM Contact
WHERE Tag__c INCLUDES ('商社;金融')
結果
Name | Tag__c |
---|---|
木村愛子 | 金融;商社 |