注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Handlebar ヘルパー

ヘルパーは、Handlebars テンプレート内から呼び出せる定義済みの関数です。ヘルパーには名前、パラメーター、戻り値があります。たとえば、テンプレート {{add 5 var1}} は、整数(5)と var1 という変数を引数として add ヘルパーを呼び出します。var1 が7に設定されている場合、テンプレートの評価結果は12になります。

ヘルパーは、次のいずれかのカテゴリーに分類されます。

  • 組み込みヘルパー - Handlebars ライブラリーで提供されるヘルパー
  • コアヘルパー - クエリとウィジェット内で利用可能
  • ウィジェットヘルパー - ウィジェット内でのみ利用可能
  • Foundry ヘルパー - Foundry クエリ内でのみ利用可能
  • SQL ヘルパー - SQL クエリ内でのみ利用可能

ヘルパーは、Functions エディターでは使用できません。

組み込みヘルパー

Handlebars ライブラリーの次のヘルパーが利用可能です。各ヘルパーの詳細については、Handlebars ドキュメント ↗を参照してください。

コアヘルパー

クエリとウィジェット内では、次のコアヘルパーを利用できます。

toString

toString ヘルパーは、JavaScript String() ↗ 関数を使用して、指定された任意の値を文字列に変換します。

例

  • 文字列に toString を使用する
    • {{toString 'hello'}} は「hello」と表示されます。
  • 数値に toString を使用する
    • {{toString 1}} は「1」と表示されます。
  • 文字列配列に toString を使用する
    • コンテキストが { variable: ["hello", "world"] } の場合、{{toString variable}} は「hello,world」と表示されます。
  • 数値配列に toString を使用する
    • コンテキストが { variable: [1, 2, 3] } の場合、{{toString variable}} は「1,2,3」と表示されます。
  • オブジェクトに toString を使用する
    • コンテキストが { variable: {"hello": "world"} } の場合、{{toString variable}} は「[Object Object]」と表示されます。

toNumber

toNumber ヘルパーは、JavaScript Number() ↗ 関数を使用して、指定された任意の値を数値に変換します。値を数値に変換できない場合は、NaN を返します。

例

  • 数値に toNumber を使用する
    • {{toNumber 1}} は1と表示されます。
  • 数値を表す文字列に toNumber を使用する
    • {{toNumber '2'}} は2と表示されます。
  • 数値を表さない文字列に toNumber を使用する
    • {{toNumber 'hello'}} は NaN と表示されます。
  • 配列に toNumber を使用する
    • コンテキストが { variable: [1, 2, 3] } の場合、{{toNumber variable}} は NaN と表示されます。
  • オブジェクトに toNumber を使用する
    • コンテキストが { variable: {"hello": "world"} } の場合、{{toNumber variable}} は NaN と表示されます。

concat

concat ヘルパーは、任意の数の引数を受け取り、まず JavaScript の String() 関数で各引数を文字列に変換してから連結します。

例

  • 2個の数値に concat を使用する
    • {{concat 1 2}} は「12」と表示されます。
  • 2個の文字列と1個の数値に concat を使用する
    • {{concat 'hello' 'world' 2}} は「helloworld2」と表示されます。
  • 2個の文字列配列に concat を使用する
    • コンテキストが { array1: ["hello", "world"], array2: ["again", "and again"] } の場合、{{concat array1 array2}} は「helloworldagainand again」と表示されます。
  • 3個の数値と1個のオブジェクトに concat を使用する
    • コンテキストが { variable: {"hello": "world"} } の場合、{{concat 1 2 3 variable}} は「123[Object Object]」と表示されます。

substring

substring ヘルパーは、入力文字列(value)、開始位置、および終了位置(任意)を受け取り、JavaScript の substring() 関数に渡します。これにより、入力文字列の部分文字列を取得できます。

例

  • 文字列に substring を使用する
    • {{substring 'foo' 0 1}} は「f」と表示されます。
  • 入力文字列の長さが終了位置より短い場合は、入力文字列を返します。
    • {{substring 'foo' 0 6}} は「foo」と表示されます。
  • 終了位置のインデックスを指定しない場合
    • {{substring 'foo' 1}} は「oo」と表示されます。

contains

contains ヘルパーは、配列または文字列(value)と検索対象の値(searchValue)を受け取り、その値が配列に含まれる場合に true を返し、含まれない場合は false を返します。これは、value.indexOf(searchvalue) !== -1 を呼び出すことで行います。

例

  • 配列に contains を使用する
    • コンテキストが { variable: [1, 2, 3] } の場合、{{contains variable 3}} は true と表示されます。
  • 文字列に contains を使用する
    • コンテキストが { variable: "hello world" } の場合、{{contains variable "hello"}} は true と表示されます。

jsonParse

jsonParse ヘルパーは、JSON 文字列を入力として受け取り、JavaScript の JSON.parse ↗ 関数を使用してパースします。

例

  • JSON 形式に文字列化した文字列に jsonParse を使用する
    • {{jsonParse '\"foo\"'}} は「foo」と表示されます。
  • JSON 形式に文字列化した配列に jsonParse を使用する
    • コンテキストが "[\"hello\",\"world\"]" の場合、{{jsonParse varA}} は ["hello", "world"] と表示されます。
  • JSON 形式に文字列化したオブジェクトに jsonParse を使用する
    • コンテキストが "{\"varA\":{\"hello\":\"world\",\"foo\":[\"bar\",\"baz\"]}}" の場合、{{jsonParse varA}} は { varA: {"hello": "world", "foo": ["bar", "baz"]} } と表示されます。
  • 数値に jsonParse を使用する
    • {{jsonParse 123}} は、コンソールに「jsonParse: Error: value must be a string」というエラーをスローします。
  • 無効な JSON 文字列に jsonParse を使用する
    • コンテキストが "[\"hello\"," の場合、{{jsonParse varA}} は、コンソールに「jsonParse: SyntaxError: Unable to parse JSON string」というエラーをスローします。

jsonStringify

jsonStringify ヘルパーは、任意のオブジェクトを入力として受け取り、そのオブジェクトを JSON に変換して返します(JavaScript の JSON.stringify ↗ 関数に渡します)。

例

  • 文字列に jsonStringify を使用する
    • {{jsonStringify 'foo'}} は "foo" と表示されます(表示されるテキストには二重引用符が含まれます)。
  • オブジェクトに jsonStringify を使用する場合、コンテキストが { varA: {"hello": "world", "foo": ["bar", "baz"]} } であれば、{{jsonStringify varA}} は {"hello":"world","foo":["bar","baz"]} と表示されます(この場合も、表示されるテキストには二重引用符が含まれます)。

add

add ヘルパーは、2個の数値を加算します。

例

  • 2個の数値で add を使用する
    • {{add 20 5}} は25と表示されます。
  • 数値ではない値に add を使用する
    • {{add 10 'abc'}} は、コンソールに「value must be a number」というエラーをスローします。

subtract

subtract ヘルパーは、1番目の数値から2番目の数値を減算します。

例

  • 2個の数値で subtract を使用する
    • {{subtract 20 5}} は15と表示されます。
  • 数値ではない値に subtract を使用する
    • {{subtract 10 'abc'}} は、コンソールに「value must be a number」というエラーをスローします。

multiply

multiply ヘルパーは、2個の数値を乗算します。

例

  • 2個の数値で multiply を使用する
    • {{multiply 20 5}} は100と表示されます。
  • 数値ではない値に multiply を使用する
    • {{multiply 10 'abc'}} は、コンソールに「value must be a number」というエラーをスローします。

divide

divide ヘルパーは、1番目の数値を2番目の数値で除算します。

例

  • 2個の数値で divide を使用する
    • {{divide 20 5}} は4と表示されます。
  • 数値ではない値に divide を使用する
    • {{divide 10 'abc'}} は、コンソールに「value must be a number」というエラーをスローします。

max

max ヘルパーは、指定された任意の数値または数値配列から最大値を求めます。

例

  • 数値配列で max を使用する
    • コンテキストが { variable: [1, 2, 3] } の場合、{{max variable}} は3と表示されます。
  • 数値配列と2個の数値で max を使用する
    • コンテキストが { variable: [1, 2, 3] } の場合、{{max variable 12 15}} は15と表示されます。
  • 文字列で max を使用する
    • {{max 'hello' 123}} は、コンソールに「value must be a number or a number array」というエラーをスローします。
  • 無効な配列で max を使用する
    • コンテキストが { variable: ["hello", "world"] } の場合、{{max variable}} は、コンソールに「value must be a number or a number array」というエラーをスローします。

min

min ヘルパーは、指定された数値または数値の配列から最小値を求めます。

例

  • 数値の配列で min を使用する
    • コンテキストが { variable: [1, 2, 3] } の場合、{{min variable}} は 1 と表示されます
  • 数値の配列と2個の数値で min を使用する
    • コンテキストが { variable: [1, 2, 3] } の場合、{{min variable 6 10}} は 1 と表示されます
  • 文字列で min を使用する
    • {{min 'hello' 123}} は、コンソールに「value must be a number or a number array」というエラーを出します
  • 無効な配列で min を使用する
    • コンテキストが { variable: ["hello", "world"] } の場合、{{min variable }} は、コンソールに「value must be a number or a number array」というエラーを出します

eq

eq ヘルパーは、2個の数値または文字列を比較し、等しいかどうかを確認します。

例

  • 2個の数値で eq を使用する

    • {{eq 1 1}} は true と表示されます
  • 数値や文字列ではない値、またはデータ型が異なる値で eq を使用する

    • {{eq [1, 2] 5}} は、コンソールに「type mismatch」というエラーを出します
  • if ブロック内で eq を使用する

    {{#if (eq name 'Steven')}}
      Your name is Steven.
    {{else}}
      Your name is not Steven.
    {{/if}}
    

    コンテキストが { name: "Steven" } の場合、「Your name is Steven.」と表示されます

ne

ne ヘルパーは、2個の数値または文字列を比較し、異なるかどうかを確認します。

例

  • 2個の数値で ne を使用する
    • {{ne 1 1}} は false と表示されます
  • 数値や文字列ではない値、またはデータ型が異なる値で ne を使用する
    • {{ne [1, 2] 5}} は、コンソールに「type mismatch」というエラーを出します

lt

lt ヘルパーは、2個の数値または文字列を比較し、1番目の値が2番目の値より小さいかどうかを確認します。

例

  • 2個の数値で lt を使用する
    • {{lt 1 2}} は true と表示されます
  • 数値や文字列ではない値、またはデータ型が異なる値で lt を使用する
    • {{lt [1, 2] 5}} は、コンソールに「type mismatch」というエラーを出します

le

le ヘルパーは、2個の数値または文字列を比較し、1番目の値が2番目の値以下かどうかを確認します。

例

  • 2個の数値で le を使用する
    • {{le 1 1}} は true と表示されます
  • 数値や文字列ではない値、またはデータ型が異なる値で le を使用する
    • {{le [1, 2] 5}} は、コンソールに「type mismatch」というエラーを出します

gt

gt ヘルパーは、2個の数値または文字列を比較し、1番目の値が2番目の値より大きいかどうかを確認します。

例

  • 2個の数値で gt を使用する
    • {{gt 2 1}} は true と表示されます
  • 数値や文字列ではない値、またはデータ型が異なる値で gt を使用する
    • {{gt [1, 2] 5}} は、コンソールに「type mismatch」というエラーを出します

ge

ge ヘルパーは、2個の数値または文字列を比較し、1番目の値が2番目の値以上かどうかを確認します。

例

  • 2個の数値で ge を使用する
    • {{ge 1 1}} は true と表示されます
  • 数値や文字列ではない値、またはデータ型が異なる値で ge を使用する
    • {{ge [1, 2] 5}} は、コンソールに「type mismatch」というエラーを出します

encodeURI

encodeURI ヘルパーは、JavaScript encodeURI() ↗ 関数で指定された文字列をエンコードします。

例

  • 文字列で encodeURI を使用する
    • {{encodeURI 'hello world?'}} は「hello%20world?」と表示されます
  • 文字列ではない値で encodeURI を使用する
    • コンテキストが { variable: [1, 2, 3] } の場合、{{encodeURI variable}} は、コンソールに「value must be a string」というエラーを出します

encodeURIComponent

encodeURIComponent ヘルパーは、JavaScript encodeURIComponent() ↗ 関数で指定された文字列をエンコードします。

例

  • 文字列で encodeURIComponent を使用する
    • {{encodeURIComponent 'hello world?'}} は「hello%20world%3F」と表示されます
  • 文字列ではない値で encodeURI を使用する
    • コンテキストが { variable: [1, 2, 3] } の場合、{{encodeURIComponent variable}} は、コンソールに「value must be a string」というエラーを出します

getSelectedDisplayValue

getSelectedDisplayValue ヘルパーは、指定された values と selectedValue を使って、displayValues から selectedDisplayValue を取得します。

例

  • values、displayValues、selectedValue で getSelectedDisplayValue を使用する
    • コンテキストが { values: [1, 2, 3], displayValues: ["a", "b", "c"], selectedValue: 2 } の場合、{{getSelectedDisplayValue values displayValues selectedValue}} は ["b"] を返します
  • values または displayValues が配列ではない場合に getSelectedDisplayValue を使用する
    • コンテキストが { values: "hello", displayValues: ["a", "b", "c"], selectedValue: 2 } の場合、{{getSelectedDisplayValue values displayValues selectedValue}} は、コンソールに「values must be an array」というエラーを出します
  • selectedValue が values に含まれていない場合に getSelectedDisplayValue を使用する
    • コンテキストが { values: [1,2,3], displayValues: ["a", "b", "c"], selectedValue: 4 } の場合、{{getSelectedDisplayValue values displayValues selectedValue}} は、コンソールに「selectedValue '4' is not in values」というエラーを出します

getSelectedDisplayValues

getSelectedDisplayValues ヘルパーは、指定された values と selectedValues を使って、displayValues から selectedDisplayValues を取得します。

例

  • values、displayValues、selectedValues で getSelectedDisplayValues を使用する
    • コンテキストが { values: [1, 2, 3], displayValues: ["a", "b", "c"], selectedValues: [2, 3] } の場合、{{getSelectedDisplayValues values displayValues selectedValues}} は ["b", "c"] を返します
  • values、displayValues、selectedValues のいずれかが配列ではない場合に getSelectedDisplayValues を使用する
    • コンテキストが { values: "hello", displayValues: ["a", "b", "c"], selectedValues: 2 } の場合、{{getSelectedDisplayValues values displayValues selectedValues}} は、コンソールに「values must be an array」というエラーを出します
  • 一部の selectedValue が values に含まれていない場合に getSelectedDisplayValues を使用する
    • コンテキストが { values: [1,2,3], displayValues: ["a", "b", "c"], selectedValues: [4] } の場合、{{getSelectedDisplayValues values displayValues selectedValues}} は、コンソールに「selectedValue '4' is not in values」というエラーを出します

lookup

lookup ヘルパーは、組み込みの Handlebars lookup ↗ の派生版を使用しており、Handlebars のドキュメントに記載された方法で使用できます。さらに、Slate の lookup 派生版では、以下の例のように、プロパティの長い連鎖を記述できます。

例

  • コンテキストが { a: { b: { c: "test" } } } の場合、{{lookup a "b" "c"}} は「test」を返します

and

and ヘルパーは、指定されたブール値の引数に対して AND (&&) 論理比較を行います。少なくとも2個の引数が必要です。

例

  • コンテキストが { var1: "true", var2: "false" } の場合、{{and var1 var2}} は「false」と表示されます

or

or ヘルパーは、指定されたブール値の引数に対して OR (||) 論理比較を行います。少なくとも2個の引数が必要です。

例

  • コンテキストが { var1: "true", var2: "false" } の場合、{{or var1 var2}} は「true」と表示されます

not

not ヘルパーは、指定されたブール値の引数に対して NOT (!) 論理比較を行います。1個の引数にのみ適用できます。

例

  • コンテキストが { var : "true" } の場合、{{not var}} は「false」と表示されます

ウィジェットヘルパー

ウィジェット内では、次のウィジェットヘルパーを利用できます。

formatNumber

formatNumber ヘルパーは、Numeral.js ↗ ライブラリを使用して、指定された数値を文字列に整形します。値は数値、書式は文字列である必要があります。

例

  • 数値に formatNumber を使用する
    • {{formatNumber 1400 '0,0'}} は「1,400」と表示されます。
      • 数値の書式設定の例については、Numeral.js ライブラリを参照してください。
  • 数値ではない値に formatNumber を使用する
    • {{formatNumber 'abc' '0,0'}} は、コンソールに「value must be a number」というエラーを出力します。
  • 無効な書式(文字列ではない書式)で formatNumber を使用する
    • コンテキストが { variable: ["hello": "world"] } の場合、{{formatNumber 1400 variable}} は、コンソールに「format must be a string」というエラーを出力します。

formatDate

formatDate ヘルパーは、Moment.js ↗ ライブラリを使用して、指定された日付を文字列に整形します。値は日付、書式は文字列である必要があります。

例

  • 文字列に formatDate を使用する
    • {{formatDate '2014-1-2' 'MM/DD/YYYY'}} は「01/02/2014」と表示されます。
      • 日付の書式設定の例については、Moment.js ライブラリを参照してください。
  • 数値に formatDate を使用する
    • {{formatDate 1237705200000 'YYYY-MM-DD'}} は「2009-03-22」と表示されます。
      • 日付の書式設定の例については、Moment.js ライブラリを参照してください。
  • 無効な日付文字列の値に formatDate を使用する
    • {{formatDate 'some string' 'YYYY-MM-DD'}} は、コンソールに「value must be a valid date」というエラーを出力します。
  • 無効な書式(文字列ではない書式)で formatDate を使用する
    • コンテキストが { variable: ["hello": "world"] } の場合、{{formatDate '2014-1-2' variable}} は、コンソールに「format must be a string」というエラーを出力します。

Foundry ヘルパー

HttpJson Foundry クエリ内では、次のヘルパーを利用できます。

joinParams

joinParams ヘルパーは、パラメーターの配列を受け取り、単一引用符で囲まれたパラメーターを , で結合します。

例

  • 文字列の配列で joinParams を使用する
    "SELECT * FROM `table1` WHERE name IN ({{joinParams names}})"
    
    コンテキストが { names: ["Bill", "John J.", "Sam's", "Jay"] } の場合、 次のように表示されます。
    "SELECT * FROM `table1` WHERE name IN ('Bill', 'John J.', 'Sam\'s', 'Jay')"
    
  • 文字列で joinParams を使用する
    "SELECT * FROM table1 WHERE name IN ({{joinParams name}});"
    
    コンテキストが { name: "Bill" } の場合、 「parameters must be an array in joinParams helper」というエラーを出力します。

SQL ヘルパー

SQL クエリ内では、次の SQL ヘルパーが利用可能です。HttpJson Foundry クエリは Spark SQL 構文を使用しますが、これらのヘルパーをそのクエリで使用しないでください。

alias

alias ヘルパーは、列またはテーブルのエイリアス名を受け取ります。column ヘルパーと table ヘルパーは、情報スキーマに照らして値をチェックします。ただし、一時的な列名やテーブル名はスキーマに含まれていません。alias ヘルパーを使用すると、一時的な列名やテーブル名を登録できます。名前が固定値でない場合は、エラーをスローします。

例

  • alias を使用して列のエイリアス名を登録する

    "SELECT id as {{alias 'alias_column_name'}} FROM table1 ORDER BY {{column aliasColumnName}};"
    

    コンテキストが { aliasColumnName: "alias_column_name" } の場合、次のように展開されます。

    "SELECT id as alias_column_name FROM table1 ORDER BY alias_column_name;"
    
  • alias を使用して、大文字と小文字を区別する列のエイリアス名を登録する

    "SELECT id as "{{alias 'Alias Column Name'}}" FROM table1 ORDER BY "{{column aliasColumnName}}";"
    

    コンテキストが { aliasColumnName: "Alias Column Name" } の場合、次のように展開されます。

    "SELECT id as "Alias Column Name" FROM table1 ORDER BY "Alias Column Name";"
    
  • alias を使用してテーブルのエイリアス名を登録する

    "SELECT id as "{{alias 'Alias Column Name'}}" FROM table1 ORDER BY "{{column aliasColumnName}}";"
    

    コンテキストが { aliasColumnName: "Alias Column Name" } の場合、次のように展開されます。

    "SELECT id as "Alias Column Name" FROM table1 ORDER BY "Alias Column Name";"
    
  • 固定値でない値で alias を使用する。

    "SELECT id as {{alias aliasColumnName}} FROM table1 ORDER BY {{table aliasColumnName}};"
    

    コンテキストが { aliasColumnName: "alias_column_name" } の場合、「固定パラメーターのみが許可されません...」というエラーがスローされます。

schema

schema ヘルパーは、スキーマ名と、許可リストに含まれる名前のリストを受け取ります。スキーマ名が許可リストに含まれていることを確認し、データソースの情報テーブルに照らしてスキーマ名をチェックします。スキーマ名が許可リストまたは情報テーブルに存在しない場合は、エラーをスローします。

例

  • 有効なスキーマ名で schema を使用する
    "SELECT * FROM {{schema schemaName 'schema1' 'schema2'}}.table1;"
    
    コンテキストが { schemaName: "schema1" } の場合、次のように展開されます。
    "SELECT * FROM schema1.table1;"
    
  • 許可リストに含まれていないスキーマ名で schema を使用する
    "SELECT * FROM {{schema schemaName 'schema1' 'schema2'}}.table1;"
    
    コンテキストが { schemaName: "schemaNameNotInList" } の場合、次のように展開されます。
    "SELECT FROM schemaNameNotInList.table1"
    
    また、実行時に「スキーマ名は許可リストに含まれている必要があります。」というエラーがスローされます。
  • 許可リストに参照が含まれているスキーマ名で schema を使用する
    "SELECT * FROM {{schema schemaName 'schema1' 'schema2' templatizedName}}.table1;"
    
    コンテキストが { schemaName: "schema1", templatizedName: "anotherSchemaName" } の場合、次のように展開されます。
    "SELECT * FROM schema1.table1;"
    
    また、実行時に「セキュリティ上の理由により、参照 ['templatizedName'] は動的にできません。」というエラーがスローされます。
  • 無効なスキーマ名で schema を使用する
    "SELECT * FROM {{schema schemaName 'invalidSchema1'}}.table1;" 
    
    コンテキストが { schemaName: "invalidSchema1" } の場合、次のように展開されます。
    "SELECT * FROM invalidSchema1.table1;"
    
    また、実行時に「無効なスキーマ名 'invalidSchema1'。」というエラーがスローされます。

table

table ヘルパーは、テーブル名と、許可リストに含まれる名前のリストを受け取ります。テーブル名が許可リストに含まれていることを確認し、データソースの情報テーブルに照らしてテーブル名をチェックします。テーブル名が許可リストまたは情報テーブルに存在しない場合は、エラーをスローします。

例

  • 有効なテーブル名で table を使用する
    "SELECT * FROM {{table tableName 'table1' 'table2'}};"
    
    コンテキストが { tableName: "table1" } の場合、次のように展開されます。
    "SELECT * FROM table1;"
    
  • 許可リストに含まれていないテーブル名で table を使用する
    "SELECT * FROM {{table tableName 'table1' 'table2'}};"
    
    コンテキストが { tableName: "tableNameNotInList" } の場合、次のように展開されます。
    "SELECT * FROM tableNameNotInList;"
    
    また、実行時に「テーブル名は許可リストに含まれている必要があります。」というエラーがスローされます。
  • 許可リストに参照が含まれているテーブル名で table を使用する
    "SELECT * FROM {{table tableName 'table1' 'table2' templatizedName}};"
    
    コンテキストが { tableName: "table1", templatizedName: "anotherTableName" } の場合、次のように展開されます。
    "SELECT * FROM table1;"
    
    また、実行時に「セキュリティ上の理由により、参照 ['templatizedName'] は動的にできません。」というエラーがスローされます。
  • 無効なテーブル名で table を使用する
    "SELECT * FROM {{table tableName 'invalidTable1'}};"
    
    コンテキストが { tableName: "invalidTable1" } の場合、次のように展開されます。
    "SELECT * FROM invalidTable1;"
    
    また、実行時に「無効なテーブル名 'invalidTable1'。」というエラーがスローされます。

column

column ヘルパーは、列名または列名のリストを受け取り、データソースの情報テーブルに照らしてチェックします。列名が情報テーブルに存在しない場合は、エラーをスローします。

例

  • 有効な列名で column を使用する
    "SELECT {{column columnName}} FROM table1;"
    
    コンテキストが { columnName: "column1" } の場合、次のように展開されます。
    "SELECT column1 FROM table1;"
    
  • 大文字と小文字を区別する有効な列名で column を使用する
    "SELECT "{{column columnName}}" FROM table1;"
    
    コンテキストが { columnName: "Column 1" } の場合、「SELECT "Column 1" FROM table1;」に展開されます。
  • 有効な列名のリストで column を使用する
    "SELECT {{column columnNames}} FROM table1;"
    
    コンテキストが { columnNames: ["column1", "column2"] } の場合、次のように展開されます。
    "SELECT column1, column2 FROM table1;"
    
  • 無効な列名で column を使用する
    "SELECT {{column columnName}} FROM table1;"
    
    コンテキストが { columnName: "invalidColumn1" } の場合、次のように展開されます。
    "SELECT invalidColumn1 FROM table1;"
    
    また、「無効な列名 'invalidColumn1'。」というエラーがスローされます。

param

param ヘルパーは、パラメーターまたはパラメーターのリストを受け取ります。通常モードでは、パラメーターをリストに格納し、疑問符を返します。プレビューモードでは、パラメーターを返します。注:プレビューモードは、展開されたクエリのプレビューとデバッグに使用します。

例

  • 通常モードで数値を指定して param を使用する
    "SELECT * FROM table1 WHERE id = {{param parameter1}};"
    
    コンテキストが { parameter1: 1234 } の場合、次のように展開されます。
    "SELECT * FROM table1 WHERE id = ?;"
    
    パラメーターのリストは [1234] になります。
  • 通常モードで文字列のリストを指定して param を使用する
    "SELECT * FROM table1 WHERE text IN ({{param parameter1}});"
    
    コンテキストが { parameter1: ["some", "text"] } の場合、次のように展開されます。
    "SELECT * FROM table1 WHERE text IN (?, ?);"
    
    パラメーターのリストは ["some", "text"] になります。
  • 通常モードで toString ヘルパーを使用し、数値を指定して param を使用する
    "SELECT * FROM table1 WHERE text = {{param (toString parameter1)}};"
    
    コンテキストが { parameter1: 1234 } の場合、次のように展開されます。
    "SELECT * FROM table1 WHERE text = ?;"
    
    パラメーターのリストは ["1234"] になります。
  • 通常モードで toNumber ヘルパーを使用し、文字列を指定して param を使用する
    "SELECT * FROM table1 WHERE text = {{param (toNumber parameter1)}};"
    
    コンテキストが { parameter1: "1234" } の場合、次のように展開されます。
    "SELECT * FROM table1 WHERE text = ?;"
    
    パラメーターのリストは [1234] になります。
  • 通常モードで concat ヘルパーを使用し、LIKE 操作で param を使用する
    "SELECT * FROM table1 WHERE text LIKE {{param (concat '%' parameter1 '%')}};"
    
    コンテキストが { parameter1: "some text" } の場合、次のように展開されます。
    "SELECT * FROM table1 WHERE text = ?;" with the list of parameters `["%some text%"]`
    
  • プレビューモードで数値を指定して param を使用する
    "SELECT * FROM table1 WHERE id = {{param parameter1}};"
    
    コンテキストが { parameter1: 1234 } の場合、次のように展開されます。
    "SELECT * FROM table1 WHERE id = 1234;"
    
  • プレビューモードで文字列のリストを指定して param を使用する
    "SELECT * FROM table1 WHERE text IN ({{param parameter1}});"
    
    コンテキストが { parameter1: ["some", "text"] } の場合、次のように展開されます。
    "SELECT * FROM table1 WHERE text IN ('some', 'text');"
    
  • 未定義のパラメーターで param を使用する
    "SELECT * FROM table1 WHERE id = {{param parameter1}};"
    
    コンテキストが { } の場合、「エラー:param ヘルパーでは、パラメーター値を null にできません」というエラーがスローされます。
  • null を含む配列で param を使用する
    "SELECT * FROM table1 WHERE text IN ({{param parameter1}});"
    
    コンテキストが { parameter: ["some", null] } の場合、「エラー:param ヘルパーでは、パラメーター配列に null 値を含めることはできません」というエラーがスローされます。